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
37d74f4f
Commit
37d74f4f
authored
May 23, 2025
by
许珑标
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
多支付通道:
内置支付通道管理; 人资企业:支付通道管理、账本签约、查询、充值 代发企业:支付通道管理、账本签约、查询
parent
74aff799
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
818 additions
and
19 deletions
+818
-19
src/api/business/companyPayChannel.js
src/api/business/companyPayChannel.js
+62
-0
src/api/business/payChannel.js
src/api/business/payChannel.js
+53
-0
src/views/business/companyInfo/merchant.vue
src/views/business/companyInfo/merchant.vue
+17
-2
src/views/business/companyPayChannel/index.vue
src/views/business/companyPayChannel/index.vue
+333
-0
src/views/business/component/payerCompanyForm.vue
src/views/business/component/payerCompanyForm.vue
+1
-1
src/views/business/payChannel/index.vue
src/views/business/payChannel/index.vue
+267
-0
src/views/business/salaryAccount/index.vue
src/views/business/salaryAccount/index.vue
+35
-8
src/views/business/taxUnit/index.vue
src/views/business/taxUnit/index.vue
+15
-0
src/views/business/taxUnit/payAcc.vue
src/views/business/taxUnit/payAcc.vue
+35
-8
No files found.
src/api/business/companyPayChannel.js
0 → 100644
View file @
37d74f4f
import
request
from
'
@/utils/request
'
// 查询企业支付通道列表
export
function
listCompanyPayChannel
(
query
)
{
return
request
({
url
:
'
/business/companyPayChannel/list
'
,
method
:
'
get
'
,
params
:
query
})
}
// 查询企业支付通道所有列表
export
function
listAllCompanyPayChannel
(
query
)
{
return
request
({
url
:
'
/business/companyPayChannel/listAll
'
,
method
:
'
get
'
,
params
:
query
})
}
// 查询企业支付通道详细
export
function
getCompanyPayChannel
(
id
)
{
return
request
({
url
:
'
/business/companyPayChannel/getInfo/
'
+
id
,
method
:
'
get
'
})
}
// 新增企业支付通道
export
function
addCompanyPayChannel
(
data
)
{
return
request
({
url
:
'
/business/companyPayChannel/add
'
,
method
:
'
post
'
,
data
:
data
})
}
// 修改企业支付通道
export
function
updateCompanyPayChannel
(
data
)
{
return
request
({
url
:
'
/business/companyPayChannel/edit
'
,
method
:
'
post
'
,
data
:
data
})
}
// 删除企业支付通道
export
function
delCompanyPayChannel
(
id
)
{
return
request
({
url
:
'
/business/companyPayChannel/remove/
'
+
id
,
method
:
'
get
'
})
}
// 商户通道签约
export
function
signChannel
(
data
)
{
return
request
({
url
:
'
/business/companyPayChannel/sign
'
,
method
:
'
post
'
,
data
:
data
})
}
src/api/business/payChannel.js
0 → 100644
View file @
37d74f4f
import
request
from
'
@/utils/request
'
// 查询企业支付通道列表
export
function
listPayChannel
(
query
)
{
return
request
({
url
:
'
/business/payChannel/list
'
,
method
:
'
get
'
,
params
:
query
})
}
// 查询企业支付通道所有列表
export
function
listAllPayChannel
(
query
)
{
return
request
({
url
:
'
/business/payChannel/listAll
'
,
method
:
'
get
'
,
params
:
query
})
}
// 查询企业支付通道详细
export
function
getPayChannel
(
id
)
{
return
request
({
url
:
'
/business/payChannel/getInfo/
'
+
id
,
method
:
'
get
'
})
}
// 新增企业支付通道
export
function
addPayChannel
(
data
)
{
return
request
({
url
:
'
/business/payChannel/add
'
,
method
:
'
post
'
,
data
:
data
})
}
// 修改企业支付通道
export
function
updatePayChannel
(
data
)
{
return
request
({
url
:
'
/business/payChannel/edit
'
,
method
:
'
post
'
,
data
:
data
})
}
// 删除企业支付通道
export
function
delPayChannel
(
id
)
{
return
request
({
url
:
'
/business/payChannel/remove/
'
+
id
,
method
:
'
get
'
})
}
src/views/business/companyInfo/merchant.vue
View file @
37d74f4f
...
@@ -92,6 +92,13 @@
...
@@ -92,6 +92,13 @@
@
click=
"handleDelete(scope.row)"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['business:companyInfo:remove']"
v-hasPermi=
"['business:companyInfo:remove']"
>
删除
</el-button>
>
删除
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-platform-eleme"
@
click=
"goPayChannel(scope.row)"
v-hasPermi=
"['business:companyPayChannel:station']"
>
支付通道
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -241,12 +248,12 @@ export default {
...
@@ -241,12 +248,12 @@ export default {
},
},
/** 新增按钮操作 */
/** 新增按钮操作 */
handleAdd
()
{
handleAdd
()
{
this
.
$router
.
push
({
path
:
'
/business/payerCompanyF
O
rm
'
})
this
.
$router
.
push
({
path
:
'
/business/payerCompanyF
o
rm
'
})
},
},
/** 修改按钮操作 */
/** 修改按钮操作 */
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
const
id
=
row
.
id
const
id
=
row
.
id
this
.
$router
.
push
({
path
:
'
/business/payerCompanyF
O
rm
'
,
query
:
{
id
:
id
}
})
this
.
$router
.
push
({
path
:
'
/business/payerCompanyF
o
rm
'
,
query
:
{
id
:
id
}
})
},
},
/** 提交按钮 */
/** 提交按钮 */
submitForm
()
{
submitForm
()
{
...
@@ -283,6 +290,14 @@ export default {
...
@@ -283,6 +290,14 @@ export default {
this
.
download
(
'
business/companyInfo/export
'
,
{
this
.
download
(
'
business/companyInfo/export
'
,
{
...
this
.
queryParams
...
this
.
queryParams
},
`companyInfo_
${
new
Date
().
getTime
()}
.xlsx`
)
},
`companyInfo_
${
new
Date
().
getTime
()}
.xlsx`
)
},
goPayChannel
(
row
)
{
this
.
$router
.
push
({
path
:
'
/business/companyPayChannel
'
,
query
:
{
companyId
:
row
.
id
,
unitType
:
1
,
companyName
:
row
.
companyName
}
})
}
}
}
}
};
};
...
...
src/views/business/companyPayChannel/index.vue
0 → 100644
View file @
37d74f4f
<
template
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"80px"
>
<el-form-item
label=
"通道名称"
prop=
"channelName"
>
<el-input
v-model=
"queryParams.channelName"
placeholder=
"请输入通道名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</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"
v-hasPermi=
"['business:companyPayChannel:add']"
>
新增
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
v-hasPermi=
"['business:companyPayChannel:export']"
>
导出
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<el-table
v-loading=
"loading"
:data=
"companyPayChannelList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
label=
"企业名称"
align=
"center"
prop=
"companyName"
/>
<el-table-column
label=
"企业类型"
align=
"center"
prop=
"unitType"
>
<template
slot-scope=
"scope"
>
<el-tag
v-if=
"scope.row.unitType === 1"
>
人资企业
</el-tag>
<el-tag
v-else-if=
"scope.row.unitType === 2"
>
代发企业
</el-tag>
</
template
>
</el-table-column>
<el-table-column
label=
"通道标识"
align=
"center"
prop=
"channelCode"
/>
<el-table-column
label=
"通道名称"
align=
"center"
prop=
"channelName"
/>
<el-table-column
label=
"使用状态"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.status"
:active-value=
"1"
:inactive-value=
"2"
@
change=
"handleStatusChange(scope.row)"
></el-switch>
</
template
>
</el-table-column>
<el-table-column
label=
"开通状态"
align=
"center"
prop=
"isEnter"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:options=
"dict.type.pay_channel_use_status"
:value=
"scope.row.isEnter"
/>
</
template
>
</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-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['business:companyPayChannel:edit']"-->
<!-- >修改
</el-button>
-->
<!--
<el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['business:companyPayChannel:remove']"-->
<!-- >删除
</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=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"企业名称"
prop=
"companyName"
>
<el-input
v-model=
"form.companyName"
disabled
placeholder=
"请输入通道标识"
/>
</el-form-item>
<el-form-item
label=
"企业类型"
prop=
"unitType"
>
<el-select
disabled
v-model=
"form.unitType"
placeholder=
"请选择企业类型"
>
<el-option
label=
"人力资源"
:value=
"1"
/>
<el-option
label=
"代发企业"
:value=
"2"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"支付通道"
prop=
"channelCode"
>
<el-select
v-model=
"form.channelCode"
placeholder=
"请选择支付通道"
>
<el-option
v-for=
"(item, index) in sysPayChannelList"
:disabled=
"item.disabled"
:label=
"item.channelName"
:value=
"item.channelCode"
/>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
listCompanyPayChannel
,
getCompanyPayChannel
,
delCompanyPayChannel
,
addCompanyPayChannel
,
updateCompanyPayChannel
}
from
"
@/api/business/companyPayChannel
"
;
import
{
listAllPayChannel
}
from
'
@/api/business/payChannel
'
export
default
{
name
:
"
CompanyPayChannel
"
,
dicts
:
[
'
pay_channel_use_status
'
],
data
()
{
return
{
// 根路径
baseURL
:
process
.
env
.
VUE_APP_BASE_API
,
// 遮罩层
loading
:
true
,
// 选中数组
ids
:
[],
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 企业支付通道表格数据
companyPayChannelList
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
companyId
:
null
,
unitType
:
null
,
channelCode
:
null
,
channelName
:
null
,
status
:
null
,
deptId
:
null
,
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
channelCode
:
[
{
required
:
true
,
message
:
"
通道标识不能为空
"
,
trigger
:
"
blur
"
}
],
channelName
:
[
{
required
:
true
,
message
:
"
通道名称不能为空
"
,
trigger
:
"
blur
"
}
],
},
sysPayChannelList
:
[]
};
},
created
()
{
},
watch
:
{
$route
(
route
)
{
this
.
queryParams
.
companyId
=
this
.
$route
.
query
.
companyId
this
.
queryParams
.
unitType
=
this
.
$route
.
query
.
unitType
this
.
getList
();
}
},
mounted
()
{
this
.
queryParams
.
companyId
=
this
.
$route
.
query
.
companyId
this
.
queryParams
.
unitType
=
this
.
$route
.
query
.
unitType
this
.
getList
();
},
methods
:
{
/** 查询企业支付通道列表 */
getList
()
{
if
(
!
this
.
queryParams
.
companyId
||
!
this
.
queryParams
.
unitType
)
{
return
}
this
.
loading
=
true
;
listCompanyPayChannel
(
this
.
queryParams
).
then
(
response
=>
{
this
.
companyPayChannelList
=
response
.
rows
;
this
.
total
=
response
.
total
;
this
.
loading
=
false
;
});
},
// 取消按钮
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
// 表单重置
reset
()
{
this
.
form
=
{
id
:
null
,
companyId
:
null
,
unitType
:
null
,
channelCode
:
null
,
channelName
:
null
,
status
:
0
,
isEnter
:
null
,
deptId
:
null
,
};
this
.
resetForm
(
"
form
"
);
},
sysPayChannelAll
()
{
listAllPayChannel
().
then
(
resp
=>
{
this
.
sysPayChannelList
=
resp
.
data
if
(
this
.
sysPayChannelList
&&
this
.
companyPayChannelList
)
{
this
.
sysPayChannelList
.
filter
(
item
=>
{
if
(
this
.
companyPayChannelList
.
some
(
obj
=>
obj
.
channelCode
===
item
.
channelCode
))
{
item
.
disabled
=
true
}
})
}
})
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
// 多选框选中数据
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
id
)
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加企业支付通道
"
;
this
.
form
.
companyId
=
this
.
queryParams
.
companyId
this
.
form
.
companyName
=
this
.
$route
.
query
.
companyName
this
.
form
.
unitType
=
this
.
queryParams
.
unitType
*
1
this
.
sysPayChannelAll
()
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
||
this
.
ids
getCompanyPayChannel
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改企业支付通道
"
;
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
this
.
form
.
id
!=
null
)
{
updateCompanyPayChannel
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
}
else
{
addCompanyPayChannel
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
ids
=
row
.
id
||
this
.
ids
;
this
.
$modal
.
confirm
(
'
是否确认删除企业支付通道编号为"
'
+
ids
+
'
"的数据项?
'
).
then
(
function
()
{
return
delCompanyPayChannel
(
ids
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
this
.
download
(
'
business/companyPayChannel/export
'
,
{
...
this
.
queryParams
},
`companyPayChannel_
${
new
Date
().
getTime
()}
.xlsx`
)
},
// 通道状态修改
handleStatusChange
(
row
)
{
const
_this
=
this
;
let
text
=
row
.
status
===
1
?
"
启用
"
:
"
停用
"
;
_this
.
$modal
.
confirm
(
'
确认要"
'
+
text
+
'
""
'
+
row
.
channelName
+
'
"支付通道吗?
'
).
then
(
function
()
{
const
updateForm
=
{
id
:
row
.
id
,
status
:
row
.
status
}
updateCompanyPayChannel
(
updateForm
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
}).
then
(()
=>
{
_this
.
$modal
.
msgSuccess
(
text
+
"
成功
"
);
}).
catch
(
function
()
{
row
.
status
=
row
.
status
===
2
?
1
:
2
;
});
},
}
};
</
script
>
src/views/business/component/payerCompanyForm.vue
View file @
37d74f4f
...
@@ -40,7 +40,7 @@
...
@@ -40,7 +40,7 @@
<image-upload
v-model=
"form.businessLicense"
:limit=
"1"
></image-upload>
<image-upload
v-model=
"form.businessLicense"
:limit=
"1"
></image-upload>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"10"
>
<el-col
:span=
"10"
v-if=
"!this.form.id"
>
<el-form-item
label=
"邀请码"
prop=
"invitationCode"
>
<el-form-item
label=
"邀请码"
prop=
"invitationCode"
>
<el-input
v-model=
"form.invitationCode"
placeholder=
"请填写入驻邀请码"
/>
<el-input
v-model=
"form.invitationCode"
placeholder=
"请填写入驻邀请码"
/>
</el-form-item>
</el-form-item>
...
...
src/views/business/payChannel/index.vue
0 → 100644
View file @
37d74f4f
<
template
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"80px"
>
<el-form-item
label=
"通道标识"
prop=
"channelCode"
>
<el-input
v-model=
"queryParams.channelCode"
placeholder=
"请输入通道唯一标识"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"通道名称"
prop=
"channelName"
>
<el-input
v-model=
"queryParams.channelName"
placeholder=
"请输入通道名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</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"
v-hasPermi=
"['business:payChannel:add']"
>
新增
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<el-table
v-loading=
"loading"
:data=
"payChannelList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
label=
"主键ID"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"通道名称"
align=
"center"
prop=
"channelName"
/>
<el-table-column
label=
"通道标识"
align=
"center"
prop=
"channelCode"
/>
<el-table-column
label=
"通道状态"
align=
"center"
prop=
"status"
>
<template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.status"
:active-value=
"1"
:inactive-value=
"2"
@
change=
"handleStatusChange(scope.row)"
></el-switch>
</
template
>
</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-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['business:payChannel:edit']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['business:payChannel:remove']"
>
删除
</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=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"通道名称"
prop=
"channelName"
>
<el-input
v-model=
"form.channelName"
placeholder=
"请输入通道名称"
/>
</el-form-item>
<el-form-item
label=
"通道标识"
prop=
"channelCode"
>
<el-input
v-model=
"form.channelCode"
placeholder=
"请输入通道唯一标识"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
listPayChannel
,
getPayChannel
,
delPayChannel
,
addPayChannel
,
updatePayChannel
}
from
"
@/api/business/payChannel
"
;
export
default
{
name
:
"
PayChannel
"
,
data
()
{
return
{
// 根路径
baseURL
:
process
.
env
.
VUE_APP_BASE_API
,
// 遮罩层
loading
:
true
,
// 选中数组
ids
:
[],
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 系统内置支付通道表格数据
payChannelList
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
channelCode
:
null
,
channelName
:
null
,
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
id
:
[
{
required
:
true
,
message
:
"
主键ID不能为空
"
,
trigger
:
"
blur
"
}
],
channelCode
:
[
{
required
:
true
,
message
:
"
通道唯一标识不能为空
"
,
trigger
:
"
blur
"
}
],
channelName
:
[
{
required
:
true
,
message
:
"
通道名称不能为空
"
,
trigger
:
"
blur
"
}
],
}
};
},
created
()
{
this
.
getList
();
},
methods
:
{
/** 查询系统内置支付通道列表 */
getList
()
{
this
.
loading
=
true
;
listPayChannel
(
this
.
queryParams
).
then
(
response
=>
{
this
.
payChannelList
=
response
.
rows
;
this
.
total
=
response
.
total
;
this
.
loading
=
false
;
});
},
// 取消按钮
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
// 表单重置
reset
()
{
this
.
form
=
{
id
:
null
,
channelCode
:
null
,
channelName
:
null
,
status
:
1
,
deptId
:
null
,
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
// 多选框选中数据
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
id
)
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加系统内置支付通道
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
||
this
.
ids
getPayChannel
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改系统内置支付通道
"
;
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
this
.
form
.
id
!=
null
)
{
updatePayChannel
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
}
else
{
addPayChannel
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
ids
=
row
.
id
||
this
.
ids
;
this
.
$modal
.
confirm
(
'
是否确认删除系统内置支付通道编号为"
'
+
ids
+
'
"的数据项?
'
).
then
(
function
()
{
return
delPayChannel
(
ids
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
this
.
download
(
'
business/payChannel/export
'
,
{
...
this
.
queryParams
},
`payChannel_
${
new
Date
().
getTime
()}
.xlsx`
)
},
// 通道状态修改
handleStatusChange
(
row
)
{
const
_this
=
this
;
let
text
=
row
.
status
===
1
?
"
启用
"
:
"
停用
"
;
_this
.
$modal
.
confirm
(
'
确认要"
'
+
text
+
'
""
'
+
row
.
channelName
+
'
"支付通道吗?
'
).
then
(
function
()
{
const
updateForm
=
{
id
:
row
.
id
,
status
:
row
.
status
}
updatePayChannel
(
updateForm
).
then
(
response
=>
{
_this
.
getList
()
});
}).
then
(()
=>
{
_this
.
$modal
.
msgSuccess
(
text
+
"
成功
"
);
}).
catch
(
function
()
{
row
.
status
=
row
.
status
===
2
?
1
:
2
;
});
},
}
};
</
script
>
src/views/business/salaryAccount/index.vue
View file @
37d74f4f
...
@@ -463,10 +463,17 @@
...
@@ -463,10 +463,17 @@
<el-dialog
title=
"绑定账户"
:visible.sync=
"openSign.panel"
width=
"300"
>
<el-dialog
title=
"绑定账户"
:visible.sync=
"openSign.panel"
width=
"300"
>
<el-form
label-width=
"80px"
>
<el-form
label-width=
"80px"
>
<el-form-item
label=
"账户主体"
>
<el-form-item
label=
"账户主体"
>
<el-select
v-model=
"openSign.companyId"
placeholder=
"请选择账户对应的企业主体"
>
<el-select
v-model=
"openSign.companyId"
placeholder=
"请选择账户对应的企业主体"
@
change=
"selectSignCompany"
>
<el-option
v-for=
"item in openSign.companyList"
:key=
"item.id"
:label=
"item.companyName"
:value=
"item.id"
/>
<el-option
v-for=
"item in openSign.companyList"
:key=
"item.id"
:label=
"item.companyName"
:value=
"item.id"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"支付通道"
>
<el-select
v-model=
"openSign.channelCode"
placeholder=
"请选择要开通的支付通道"
>
<el-option
v-for=
"item in companyPayChannelList"
:key=
"item.channelCode"
:label=
"item.channelName"
:value=
"item.channelCode"
:disabled=
"!item.isEnter || item.isEnter > 2"
/>
</el-select>
</el-form-item>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitBind"
>
确定
</el-button>
<el-button
type=
"primary"
@
click=
"submitBind"
>
确定
</el-button>
...
@@ -496,8 +503,9 @@ import { formatDate } from '@/utils'
...
@@ -496,8 +503,9 @@ import { formatDate } from '@/utils'
import
QrCodeComponent
from
'
@/components/QrCode.vue
'
import
QrCodeComponent
from
'
@/components/QrCode.vue
'
import
TaxSignComponent
from
'
@/views/business/salaryAccount/taxSignComponent.vue
'
import
TaxSignComponent
from
'
@/views/business/salaryAccount/taxSignComponent.vue
'
import
{
bindUnitAcc
,
listAllHasNoOpenInfo
}
from
'
@/api/business/unitInfo
'
import
{
bindUnitAcc
,
listAllHasNoOpenInfo
}
from
'
@/api/business/unitInfo
'
import
{
allHasNoOpenInfoCompany
,
bindCompanyAcc
}
from
'
@/api/business/companyInfo
'
import
{
allHasNoOpenInfoCompany
,
bindCompanyAcc
,
listAllCompanyInfo
}
from
'
@/api/business/companyInfo
'
import
{
queryHasNoAccSign
}
from
'
@/api/business/laborSign
'
import
{
queryHasNoAccSign
}
from
'
@/api/business/laborSign
'
import
{
listAllCompanyPayChannel
,
signChannel
}
from
'
@/api/business/companyPayChannel
'
export
default
{
export
default
{
name
:
'
SalaryAccount
'
,
name
:
'
SalaryAccount
'
,
components
:
{
TaxSignComponent
,
QrCodeComponent
,
AccSelect
},
components
:
{
TaxSignComponent
,
QrCodeComponent
,
AccSelect
},
...
@@ -510,6 +518,7 @@ export default {
...
@@ -510,6 +518,7 @@ export default {
companyList
:
[],
companyList
:
[],
codePanel
:
false
,
codePanel
:
false
,
codeUrl
:
''
,
codeUrl
:
''
,
channelCode
:
''
},
},
bindAcc
:
{
bindAcc
:
{
panel
:
false
,
panel
:
false
,
...
@@ -595,6 +604,7 @@ export default {
...
@@ -595,6 +604,7 @@ export default {
loading
:
false
,
loading
:
false
,
// 第三方发薪账号余额、服务费充值选择弹窗
// 第三方发薪账号余额、服务费充值选择弹窗
rechargeCoursePanelDialog
:
false
,
rechargeCoursePanelDialog
:
false
,
companyPayChannelList
:
[]
}
}
},
},
created
()
{
created
()
{
...
@@ -804,7 +814,10 @@ export default {
...
@@ -804,7 +814,10 @@ export default {
})
})
},
},
goRegister
()
{
goRegister
()
{
allHasNoOpenInfoCompany
().
then
(
resp
=>
{
this
.
openSign
.
companyId
=
null
;
this
.
openSign
.
channelCode
=
null
;
this
.
companyPayChannelList
=
[];
listAllCompanyInfo
({
bindType
:
1
}).
then
(
resp
=>
{
if
(
200
===
resp
.
code
)
{
if
(
200
===
resp
.
code
)
{
this
.
openSign
.
companyList
=
resp
.
data
this
.
openSign
.
companyList
=
resp
.
data
}
}
...
@@ -813,16 +826,30 @@ export default {
...
@@ -813,16 +826,30 @@ export default {
})
})
},
},
submitBind
()
{
submitBind
()
{
const
singForm
=
{
companyId
:
this
.
openSign
.
companyId
,
unitType
:
1
,
channelCode
:
this
.
openSign
.
channelCode
}
this
.
$modal
.
loading
()
this
.
$modal
.
loading
()
bindCompanyAcc
(
this
.
openSign
.
companyId
).
then
(
resp
=>
{
signChannel
(
singForm
).
then
(
resp
=>
{
if
(
200
===
resp
.
code
)
{
this
.
openSign
.
codePanel
=
true
;
this
.
openSign
.
codePanel
=
true
;
this
.
openSign
.
codeUrl
=
resp
.
data
this
.
openSign
.
codeUrl
=
resp
.
data
}
}).
finally
(()
=>
{
}).
finally
(()
=>
{
this
.
$modal
.
closeLoading
()
this
.
$modal
.
closeLoading
()
this
.
openSign
.
panel
=
false
;
this
.
openSign
.
panel
=
false
;
})
})
},
selectSignCompany
(
value
)
{
this
.
openSign
.
channelCode
=
null
;
const
channelQuery
=
{
unitType
:
1
,
companyId
:
value
,
status
:
1
}
listAllCompanyPayChannel
(
channelQuery
).
then
(
resp
=>
{
this
.
companyPayChannelList
=
resp
.
data
})
}
}
}
}
}
}
...
...
src/views/business/taxUnit/index.vue
View file @
37d74f4f
...
@@ -123,6 +123,13 @@
...
@@ -123,6 +123,13 @@
v-hasPermi=
"['business:unitInfo:remove']"
v-hasPermi=
"['business:unitInfo:remove']"
>
删除
>
删除
</el-button>
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-platform-eleme"
@
click=
"goPayChannel(scope.row)"
v-hasPermi=
"['business:companyPayChannel:station']"
>
支付通道
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -323,6 +330,14 @@ export default {
...
@@ -323,6 +330,14 @@ export default {
this
.
download
(
'
business/unitInfo/export
'
,
{
this
.
download
(
'
business/unitInfo/export
'
,
{
...
this
.
queryParams
...
this
.
queryParams
},
`unitInfo_
${
new
Date
().
getTime
()}
.xlsx`
)
},
`unitInfo_
${
new
Date
().
getTime
()}
.xlsx`
)
},
goPayChannel
(
row
)
{
this
.
$router
.
push
({
path
:
'
/business/companyPayChannel
'
,
query
:
{
companyId
:
row
.
id
,
unitType
:
2
,
companyName
:
row
.
companyName
}
})
}
}
}
}
}
}
...
...
src/views/business/taxUnit/payAcc.vue
View file @
37d74f4f
...
@@ -310,10 +310,17 @@
...
@@ -310,10 +310,17 @@
<el-dialog
title=
"绑定账户"
:visible.sync=
"bindAcc.panel"
width=
"300"
>
<el-dialog
title=
"绑定账户"
:visible.sync=
"bindAcc.panel"
width=
"300"
>
<el-form
label-width=
"80px"
>
<el-form
label-width=
"80px"
>
<el-form-item
label=
"账户主体"
>
<el-form-item
label=
"账户主体"
>
<el-select
v-model=
"bindAcc.companyId"
placeholder=
"请选择账户对应的企业主体"
>
<el-select
v-model=
"bindAcc.companyId"
placeholder=
"请选择账户对应的企业主体"
@
change=
"selectSignCompany"
>
<el-option
v-for=
"item in bindAcc.taxUnitList"
:label=
"item.unitName"
:value=
"item.id"
/>
<el-option
v-for=
"item in bindAcc.taxUnitList"
:label=
"item.unitName"
:value=
"item.id"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"支付通道"
>
<el-select
v-model=
"bindAcc.channelCode"
placeholder=
"请选择要开通的支付通道"
>
<el-option
v-for=
"item in companyPayChannelList"
:key=
"item.channelCode"
:label=
"item.channelName"
:value=
"item.channelCode"
:disabled=
"!item.isEnter || item.isEnter > 2"
/>
</el-select>
</el-form-item>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitBind"
>
确定
</el-button>
<el-button
type=
"primary"
@
click=
"submitBind"
>
确定
</el-button>
...
@@ -343,6 +350,7 @@ import { formatDate } from '@/utils'
...
@@ -343,6 +350,7 @@ import { formatDate } from '@/utils'
import
QrCodeComponent
from
'
@/components/QrCode.vue
'
import
QrCodeComponent
from
'
@/components/QrCode.vue
'
import
TaxSignComponent
from
'
@/views/business/salaryAccount/taxSignComponent.vue
'
import
TaxSignComponent
from
'
@/views/business/salaryAccount/taxSignComponent.vue
'
import
{
bindUnitAcc
,
listAllHasNoOpenInfo
,
listAllUnitAccInfo
,
listAllUnitInfo
}
from
'
@/api/business/unitInfo
'
import
{
bindUnitAcc
,
listAllHasNoOpenInfo
,
listAllUnitAccInfo
,
listAllUnitInfo
}
from
'
@/api/business/unitInfo
'
import
{
listAllCompanyPayChannel
,
signChannel
}
from
'
@/api/business/companyPayChannel
'
export
default
{
export
default
{
name
:
'
SalaryAccount
'
,
name
:
'
SalaryAccount
'
,
components
:
{
TaxSignComponent
,
QrCodeComponent
,
AccSelect
},
components
:
{
TaxSignComponent
,
QrCodeComponent
,
AccSelect
},
...
@@ -354,6 +362,7 @@ export default {
...
@@ -354,6 +362,7 @@ export default {
taxUnitList
:
[],
taxUnitList
:
[],
codePanel
:
false
,
codePanel
:
false
,
codeUrl
:
''
,
codeUrl
:
''
,
channelCode
:
''
},
},
billPanel
:
false
,
billPanel
:
false
,
qrPayPanel
:
{
qrPayPanel
:
{
...
@@ -431,7 +440,8 @@ export default {
...
@@ -431,7 +440,8 @@ export default {
billTotal
:
0
,
billTotal
:
0
,
userInfoName
:
null
,
userInfoName
:
null
,
accountCollection
:
[],
accountCollection
:
[],
loading
:
false
loading
:
false
,
companyPayChannelList
:
null
,
}
}
},
},
created
()
{
created
()
{
...
@@ -604,7 +614,10 @@ export default {
...
@@ -604,7 +614,10 @@ export default {
})
})
},
},
goRegister
()
{
goRegister
()
{
listAllHasNoOpenInfo
().
then
(
resp
=>
{
this
.
bindAcc
.
companyId
=
null
;
this
.
bindAcc
.
channelCode
=
null
;
this
.
companyPayChannelList
=
[];
listAllUnitInfo
().
then
(
resp
=>
{
if
(
200
===
resp
.
code
)
{
if
(
200
===
resp
.
code
)
{
this
.
bindAcc
.
taxUnitList
=
resp
.
data
this
.
bindAcc
.
taxUnitList
=
resp
.
data
}
}
...
@@ -613,16 +626,30 @@ export default {
...
@@ -613,16 +626,30 @@ export default {
})
})
},
},
submitBind
()
{
submitBind
()
{
const
singForm
=
{
companyId
:
this
.
bindAcc
.
companyId
,
unitType
:
2
,
channelCode
:
this
.
bindAcc
.
channelCode
}
this
.
$modal
.
loading
()
this
.
$modal
.
loading
()
bindUnitAcc
(
this
.
bindAcc
.
companyId
).
then
(
resp
=>
{
signChannel
(
singForm
).
then
(
resp
=>
{
if
(
200
===
resp
.
code
)
{
this
.
bindAcc
.
codePanel
=
true
this
.
bindAcc
.
codeUrl
=
resp
.
data
this
.
bindAcc
.
codeUrl
=
resp
.
data
this
.
bindAcc
.
codePanel
=
true
}
}).
finally
(()
=>
{
}).
finally
(()
=>
{
this
.
$modal
.
closeLoading
()
this
.
$modal
.
closeLoading
()
this
.
bindAcc
.
panel
=
false
;
this
.
bindAcc
.
panel
=
false
;
})
})
},
selectSignCompany
(
value
)
{
this
.
bindAcc
.
channelCode
=
null
;
const
channelQuery
=
{
unitType
:
2
,
companyId
:
value
,
status
:
1
}
listAllCompanyPayChannel
(
channelQuery
).
then
(
resp
=>
{
this
.
companyPayChannelList
=
resp
.
data
})
}
}
}
}
}
}
...
...
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