Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
薪
薪瑞通-前端
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
许珑标
薪瑞通-前端
Commits
f94e10e0
Commit
f94e10e0
authored
May 29, 2025
by
许珑标
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
签约信息中的代发账户管理
parent
37d74f4f
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
402 additions
and
36 deletions
+402
-36
src/api/business/accInfo.js
src/api/business/accInfo.js
+9
-0
src/api/business/laborSign.js
src/api/business/laborSign.js
+5
-4
src/views/business/companyPayChannel/index.vue
src/views/business/companyPayChannel/index.vue
+1
-1
src/views/business/salaryAccount/index.vue
src/views/business/salaryAccount/index.vue
+7
-3
src/views/business/taxUnit/LaborAcc.vue
src/views/business/taxUnit/LaborAcc.vue
+378
-0
src/views/business/taxUnit/signList.vue
src/views/business/taxUnit/signList.vue
+2
-28
No files found.
src/api/business/accInfo.js
View file @
f94e10e0
...
@@ -9,6 +9,15 @@ export function listAccInfo(query) {
...
@@ -9,6 +9,15 @@ export function listAccInfo(query) {
})
})
}
}
// 查询商户付款账户列表-无部门过滤
export
function
listLaborAcc
(
query
)
{
return
request
({
url
:
'
/business/accInfo/labor/accList
'
,
method
:
'
get
'
,
params
:
query
})
}
// 查询商户付款账户所有列表
// 查询商户付款账户所有列表
export
function
listAllAccInfo
(
query
)
{
export
function
listAllAccInfo
(
query
)
{
return
request
({
return
request
({
...
...
src/api/business/laborSign.js
View file @
f94e10e0
...
@@ -60,11 +60,12 @@ export function agreeSign(id) {
...
@@ -60,11 +60,12 @@ export function agreeSign(id) {
})
})
}
}
//
删除代发合约签订
//
分配代发账户
export
function
giveAccToLabor
(
laborId
)
{
export
function
giveAccToLabor
(
data
)
{
return
request
({
return
request
({
url
:
'
/business/unitInfo/acc/give/
'
+
laborId
,
url
:
'
/business/unitInfo/acc/give
'
,
method
:
'
post
'
method
:
'
post
'
,
data
:
data
})
})
}
}
...
...
src/views/business/companyPayChannel/index.vue
View file @
f94e10e0
...
@@ -95,7 +95,7 @@
...
@@ -95,7 +95,7 @@
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"企业名称"
prop=
"companyName"
>
<el-form-item
label=
"企业名称"
prop=
"companyName"
>
<el-input
v-model=
"form.companyName"
disabled
placeholder=
"
请输入通道标识
"
/>
<el-input
v-model=
"form.companyName"
disabled
placeholder=
"
企业名称
"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"企业类型"
prop=
"unitType"
>
<el-form-item
label=
"企业类型"
prop=
"unitType"
>
<el-select
disabled
v-model=
"form.unitType"
placeholder=
"请选择企业类型"
>
<el-select
disabled
v-model=
"form.unitType"
placeholder=
"请选择企业类型"
>
...
...
src/views/business/salaryAccount/index.vue
View file @
f94e10e0
...
@@ -735,9 +735,13 @@ export default {
...
@@ -735,9 +735,13 @@ export default {
this
.
aliQRCodeRechargeOpen
=
false
this
.
aliQRCodeRechargeOpen
=
false
if
(
200
===
res
.
code
)
{
if
(
200
===
res
.
code
)
{
if
(
1
===
this
.
aliQRCodeRechargeForm
.
bindType
)
{
if
(
1
===
this
.
aliQRCodeRechargeForm
.
bindType
)
{
if
(
res
.
data
.
status
)
{
this
.
qrPayPanel
.
payUrl
=
res
.
data
.
msg
this
.
qrPayPanel
.
payUrl
=
res
.
data
.
msg
this
.
qrPayPanel
.
open
=
true
this
.
qrPayPanel
.
open
=
true
this
.
$forceUpdate
()
this
.
$forceUpdate
()
}
else
{
this
.
$modal
.
msgWarning
(
res
.
data
.
msg
)
}
}
else
{
}
else
{
this
.
$modal
.
msgSuccess
(
"
充值成功!
"
);
this
.
$modal
.
msgSuccess
(
"
充值成功!
"
);
}
}
...
...
src/views/business/taxUnit/LaborAcc.vue
0 → 100644
View file @
f94e10e0
<
template
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"medium"
:inline=
"true"
v-show=
"showSearch"
label-width=
"80px"
>
<el-form-item
label=
"代发账户"
prop=
"payAccNo"
>
<el-input
v-model=
"queryParams.payAccNo"
placeholder=
"请输入账户"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"支付通道"
prop=
"channelCode"
>
<el-select
v-model=
"queryParams.channelCode"
placeholder=
"请选择支付通道"
clearable
>
<el-option
v-for=
"(item, index) in sysPayChannelList"
:label=
"item.channelName"
:value=
"item.channelCode"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
>
新增
</el-button>
</el-col>
<!--
<el-col
:span=
"1.5"
>
-->
<!--
<el-button-->
<!-- type="warning"-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['system:post:export']"-->
<!-- >导出
</el-button>
-->
<!--
</el-col>
-->
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<el-table
v-loading=
"loading"
:data=
"accList"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
label=
"所属企业"
align=
"center"
prop=
"companyName"
/>
<el-table-column
label=
"代发账户信息"
align=
"center"
>
<el-table-column
label=
"户名"
align=
"center"
prop=
"payAccName"
/>
<el-table-column
label=
"账号"
align=
"center"
prop=
"payAccNo"
/>
<el-table-column
label=
"所属通道"
align=
"center"
prop=
"channelCode"
>
<template
slot-scope=
"scope"
>
{{
sysPayChannelMap
.
get
(
scope
.
row
.
channelCode
)
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-info"
@
click=
"viewDetail(scope.row)"
>
账户详情
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"updateRate(scope.row)"
>
设置费率
</el-button>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total>0"
:total=
"total"
:page.sync=
"queryParams.pageNum"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 账户详情弹窗 -->
<el-dialog
title=
"账号信息查询"
:visible.sync=
"accDetail.panel"
width=
"30%"
center
>
<el-descriptions
:title=
"accDetail.companyName"
:column=
"1"
:label-style=
"accDetail.label_style"
:contentStyle=
"accDetail.content_style"
>
<el-descriptions-item
label=
"账号"
>
{{ accDetail.info.cardNo }}
</el-descriptions-item>
<el-descriptions-item
label=
"户名"
>
{{ accDetail.info.bankAccName }}
</el-descriptions-item>
<el-descriptions-item
label=
"银行"
>
{{ accDetail.info.cardBank }}
</el-descriptions-item>
<el-descriptions-item
label=
"支行"
>
{{ accDetail.info.cardBranch }}
</el-descriptions-item>
<el-descriptions-item
label=
"开户地"
>
{{ accDetail.info.cardLocation }}
</el-descriptions-item>
<el-descriptions-item
label=
"联行号"
>
{{ accDetail.info.cardDeposit }}
</el-descriptions-item>
<!-- <el-descriptions-item label="备付金余额">{{ offlineRecharge.availableAmount }}</el-descriptions-item>-->
<el-descriptions-item
label=
"可转账金额"
>
{{ accDetail.info.availableTransferAmount }}
</el-descriptions-item>
<el-descriptions-item
label=
"可用服务费"
>
{{ accDetail.info.availableFeeAmount }}
</el-descriptions-item>
<el-descriptions-item
label=
"到卡费率"
>
{{ accDetail.info.toBankRate }}
</el-descriptions-item>
<el-descriptions-item
label=
"到户费率"
>
{{ accDetail.info.toAlipayRate }}
</el-descriptions-item>
</el-descriptions>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"accDetail.panel = false"
>
确 定
</el-button>
</div>
</el-dialog>
<!-- 设置费率-->
<el-dialog
title=
"费率设置"
:visible.sync=
"configRatePanel"
width=
"30%"
center
>
<el-descriptions
:title=
"configRateForm.companyName"
:column=
"1"
:label-style=
"label_style"
:contentStyle=
"content_style"
>
</el-descriptions>
<el-descriptions
:title=
"'外卡卡号:' + configRateForm.alipayCardNo"
:column=
"1"
>
</el-descriptions>
<el-form
ref=
"configRateForm"
:model=
"configRateForm"
:rules=
"configRateFormRules"
label-width=
"150px"
>
<el-form-item
label=
"转账到支付宝费率"
prop=
"toAlipayRate"
>
<el-input-number
v-model=
"configRateForm.toAlipayRate"
placeholder=
"请输入到支付宝费率"
:step=
"0.001"
:precision=
"3"
:min=
"0"
:max=
"1"
style=
"width: 200px"
/>
</el-form-item>
<el-form-item
label=
"转账到银行卡费率"
prop=
"toBankRate"
>
<el-input-number
v-model=
"configRateForm.toBankRate"
placeholder=
"请输入到银行卡费率"
:step=
"0.001"
:precision=
"3"
:min=
"0"
:max=
"1"
style=
"width: 200px"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"configRatePanel = false"
>
关 闭
</el-button>
<el-button
type=
"primary"
@
click=
"configRateSubmit"
>
确 定
</el-button>
</div>
</el-dialog>
<!-- 添加或修改企业支付通道对话框 -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"addForm"
:model=
"addForm"
label-width=
"120px"
>
<el-form-item
label=
"对方企业名称"
prop=
"inviterName"
>
<el-input
v-model=
"addForm.inviterName"
disabled
placeholder=
"企业名称"
/>
</el-form-item>
<el-form-item
label=
"对方信用代码"
prop=
"inviterCode"
>
<el-input
v-model=
"addForm.inviterCode"
disabled
placeholder=
"信用代码"
/>
</el-form-item>
<el-form-item
label=
"分配账户通道"
prop=
"channelCode"
>
<el-select
v-model=
"addForm.channelCode"
placeholder=
"请选择支付通道"
>
<el-option
v-for=
"(item, index) in taxUnitPayChannelList"
:label=
"item.channelName"
:value=
"item.channelCode"
/>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitAdd"
>
确 定
</el-button>
<el-button
@
click=
"open = false"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
getAccAliInfo
,
listLaborAcc
}
from
'
@/api/business/accInfo
'
import
{
listAllPayChannel
}
from
'
@/api/business/payChannel
'
import
{
listAllCompanyPayChannel
}
from
'
@/api/business/companyPayChannel
'
import
{
getLaborSign
,
giveAccToLabor
}
from
'
@/api/business/laborSign
'
import
companyPayChannel
from
'
@/views/business/companyPayChannel/index.vue
'
import
fa
from
'
element-ui/src/locale/lang/fa
'
export
default
{
name
:
"
LaborAcc
"
,
computed
:
{
fa
()
{
return
fa
},
companyPayChannel
()
{
return
companyPayChannel
}
},
data
()
{
return
{
// 遮罩层
loading
:
false
,
// 选中数组
ids
:
[],
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 表格数据
accList
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
laborSignId
:
null
,
channelCode
:
undefined
,
payAccNo
:
undefined
},
// 账户详情
accDetail
:
{
content_style
:
{
'
font-size
'
:
'
16px
'
,
},
label_style
:
{
'
font-size
'
:
'
16px
'
,
},
panel
:
false
,
info
:
{}
},
// 设置费率相关
label_style
:
{
'
font-size
'
:
'
16px
'
,
},
content_style
:
{
'
font-size
'
:
'
16px
'
,
},
configRatePanel
:
false
,
configRateForm
:
{
toAlipayRate
:
0
,
toBankRate
:
0
},
configRateFormRules
:
{
toAlipayRate
:
[
{
required
:
true
,
message
:
'
请输入转账到支付宝的费率
'
,
trigger
:
'
blur
'
}
],
toBankRate
:
[
{
required
:
true
,
message
:
'
请输入转账到银行卡的费率
'
,
trigger
:
'
blur
'
}
],
},
sysPayChannelList
:
[],
sysPayChannelMap
:
undefined
,
taxUnitPayChannelList
:
[],
addForm
:
{
channelCode
:
null
,
}
};
},
watch
:
{
$route
(
route
)
{
this
.
queryParams
.
laborSignId
=
this
.
$route
.
query
.
signId
this
.
getList
();
}
},
mounted
()
{
this
.
queryParams
.
laborSignId
=
this
.
$route
.
query
.
signId
this
.
getList
();
},
methods
:
{
async
getList
()
{
if
(
this
.
queryParams
.
laborSignId
)
{
if
(
!
this
.
sysPayChannelList
||
0
>=
this
.
sysPayChannelList
.
length
)
{
await
this
.
sysPayChannelAll
()
}
this
.
loading
=
true
;
await
listLaborAcc
(
this
.
queryParams
).
then
(
resp
=>
{
this
.
accList
=
resp
.
rows
}).
finally
(()
=>
{
this
.
loading
=
false
;
})
}
},
sysPayChannelAll
()
{
listAllPayChannel
().
then
(
resp
=>
{
this
.
sysPayChannelList
=
resp
.
data
this
.
sysPayChannelMap
=
new
Map
(
resp
.
data
.
map
(
value
=>
[
value
.
channelCode
,
value
.
channelName
]));
})
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
viewDetail
(
card
)
{
this
.
$modal
.
loading
(
"
正在查询...
"
)
getAccAliInfo
(
card
.
payAccNo
).
then
(
resp
=>
{
if
(
200
===
resp
.
code
)
{
this
.
accDetail
.
companyName
=
card
.
accName
this
.
accDetail
.
info
=
resp
.
data
this
.
accDetail
.
panel
=
true
}
}).
finally
(()
=>
{
this
.
$modal
.
closeLoading
()
})
},
// 打开设置费率弹窗
updateRate
(
cardInfo
){
this
.
$modal
.
loading
(
"
正在查询...
"
)
getAccAliInfo
(
cardInfo
.
payAccNo
).
then
(
resp
=>
{
if
(
200
===
resp
.
code
)
{
this
.
configRateForm
.
companyName
=
cardInfo
.
accName
this
.
configRateForm
.
toAlipayRate
=
resp
.
data
.
toAlipayRate
this
.
configRateForm
.
toBankRate
=
resp
.
data
.
toBankRate
this
.
configRateForm
.
alipayCardNo
=
cardInfo
.
payAccNo
this
.
configRatePanel
=
true
}
}).
finally
(()
=>
{
this
.
$modal
.
closeLoading
()
})
},
configRateSubmit
()
{
this
.
$refs
[
'
configRateForm
'
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
$modal
.
msgSuccess
(
"
操作成功
"
)
this
.
configRatePanel
=
false
let
params
=
{
sysMerchantId
:
this
.
configRateForm
.
sysMerchantId
,
toAlipayRate
:
Number
(
this
.
configRateForm
.
toAlipayRate
),
toBankRate
:
Number
(
this
.
configRateForm
.
toBankRate
)
}
}
})
},
/** 新增按钮操作 */
async
handleAdd
()
{
this
.
open
=
true
;
this
.
title
=
"
分配代发账户
"
;
const
channelQuery
=
{
unitType
:
2
,
isEnter
:
3
,
status
:
1
}
await
getLaborSign
(
this
.
queryParams
.
laborSignId
).
then
(
resp
=>
{
channelQuery
.
compaynId
=
resp
.
data
.
taxUnitId
this
.
addForm
.
inviterName
=
resp
.
data
.
inviterName
this
.
addForm
.
inviterCode
=
resp
.
data
.
inviterCode
})
if
(
channelQuery
.
compaynId
)
{
await
listAllCompanyPayChannel
(
channelQuery
).
then
(
resp
=>
{
this
.
taxUnitPayChannelList
=
resp
.
data
})
}
},
submitAdd
()
{
if
(
this
.
accList
&&
this
.
accList
.
length
>
0
)
{
const
hasChannel
=
this
.
accList
.
some
(
acc
=>
acc
.
channelCode
===
this
.
addForm
.
channelCode
);
if
(
hasChannel
)
{
const
channelName
=
this
.
sysPayChannelMap
.
get
(
this
.
addForm
.
channelCode
);
const
msg
=
`
${
channelName
}
:该支付通道已有分配记录,是否继续?`
this
.
$confirm
(
msg
,
'
提示
'
,
{
confirmButtonText
:
'
确定
'
,
cancelButtonText
:
'
取消
'
,
type
:
'
warning
'
}).
then
(()
=>
{
this
.
addForm
.
laborSignId
=
this
.
queryParams
.
laborSignId
;
this
.
givPayAcc
()
})
}
}
},
givPayAcc
()
{
this
.
$modal
.
loading
(
"
处理中...
"
)
giveAccToLabor
(
this
.
addForm
).
then
(
resp
=>
{
if
(
200
===
resp
.
code
)
{
if
(
200
===
resp
.
data
.
code
)
{
this
.
$modal
.
msgSuccess
(
"
操作成功
"
)
this
.
getList
()
}
else
if
(
202
===
resp
.
data
.
code
)
{
this
.
$confirm
(
'
未签约支付协议,暂无法进行此操作
'
,
'
操作提示
'
,
{
distinguishCancelAndClose
:
true
,
confirmButtonText
:
'
去签约
'
,
cancelButtonText
:
'
取消
'
}).
then
(()
=>
{
this
.
$router
.
push
({
path
:
"
/taxUnit/payAcc
"
});
}).
catch
(
action
=>
{
});
}
}
}).
finally
(()
=>
{
this
.
open
=
false
;
this
.
$modal
.
closeLoading
()
})
}
}
};
</
script
>
src/views/business/taxUnit/signList.vue
View file @
f94e10e0
...
@@ -45,7 +45,7 @@
...
@@ -45,7 +45,7 @@
</el-button>
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-lollipop"
@
click=
"givePayAcc(scope.row)"
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-lollipop"
@
click=
"givePayAcc(scope.row)"
v-if=
"scope.row.signStatus && 2 === scope.row.signStatus && !scope.row.payAccNo"
v-if=
"scope.row.signStatus && 2 === scope.row.signStatus && !scope.row.payAccNo"
v-hasPermi=
"['business:unitInfo:add']"
>
分配
账户
v-hasPermi=
"['business:unitInfo:add']"
>
代发
账户
</el-button>
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
...
@@ -148,33 +148,7 @@ export default {
...
@@ -148,33 +148,7 @@ export default {
this
.
doAgreePanelVisible
=
false
this
.
doAgreePanelVisible
=
false
},
},
givePayAcc
(
row
)
{
givePayAcc
(
row
)
{
this
.
$confirm
(
`确认给[
${
row
.
inviterName
}
]分配付款专户吗?`
,
'
操作提示
'
,
{
this
.
$router
.
push
({
path
:
'
/business/laborAcc
'
,
query
:
{
signId
:
row
.
id
}
})
confirmButtonText
:
'
确定
'
,
cancelButtonText
:
'
取消
'
,
type
:
'
warning
'
}).
then
(()
=>
{
this
.
$modal
.
loading
(
"
处理中...
"
)
giveAccToLabor
(
row
.
id
).
then
(
resp
=>
{
if
(
200
===
resp
.
code
)
{
if
(
200
===
resp
.
data
.
code
)
{
this
.
$modal
.
msgSuccess
(
"
操作成功
"
)
this
.
getList
()
}
else
if
(
202
===
resp
.
data
.
code
)
{
this
.
$confirm
(
row
.
taxUnitName
+
'
:未签约支付协议,暂无法进行此操作
'
,
'
操作提示
'
,
{
distinguishCancelAndClose
:
true
,
confirmButtonText
:
'
去签约
'
,
cancelButtonText
:
'
取消
'
}).
then
(()
=>
{
this
.
$router
.
push
({
path
:
"
/taxUnit/payAcc
"
});
}).
catch
(
action
=>
{
});
}
}
}).
finally
(()
=>
{
this
.
$modal
.
closeLoading
()
})
}).
catch
(()
=>
{
});
}
}
}
}
}
}
...
...
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