Browse Source

修改

master
j1ack 2 years ago
parent
commit
4ad81a731f
  1. 23
      build/[fallback].variant.js
  2. 6
      build/absolute_logo.variant.js
  3. 6
      build/dynamic_logo.variant.js
  4. 6
      build/merchant_1.variant.js
  5. 6
      build/static_logo.variant.js
  6. 30
      src/App.vue
  7. 77
      src/api/form.js
  8. BIN
      src/assets/images/close.png
  9. BIN
      src/assets/images/leftbottom.png
  10. BIN
      src/assets/images/lefttop.png
  11. BIN
      src/assets/images/open.png
  12. BIN
      src/assets/images/rightbottom.png
  13. BIN
      src/assets/images/righttop.png
  14. BIN
      src/assets/images/text.png
  15. 8
      src/assets/styles/variables.scss
  16. 4
      src/components/Breadcrumb/index.vue
  17. 32
      src/layout/components/Navbar.vue
  18. 45
      src/views/carddealer/carddealer/index.vue
  19. 38
      src/views/carddealer/carddealer/pkCouponScopeRangeStoreList.vue
  20. 3
      src/views/carddealer/carddealerCard/index.vue
  21. 6
      src/views/configuration/daifuConfig.vue
  22. 6
      src/views/configuration/daishouConfig.vue
  23. 17
      src/views/dashboard/PanelGroup.vue
  24. 131
      src/views/login.vue
  25. 30
      src/views/merchant/merchant/index.vue
  26. 125
      src/views/order/TransferOrder/daifuSonOrder.vue
  27. 16
      src/views/order/TransferOrder/index.vue
  28. 3
      src/views/order/TransferOrder/pkCouponScopeRangeStoreList.vue
  29. 9
      src/views/order/TransferOrder/pkCouponScopeRangeStoreList2.vue
  30. 56
      src/views/order/TransferOrder/readyOrder.vue
  31. 526
      src/views/order/carddealerOrder/carddealerSonOrder.vue
  32. 2
      src/views/order/carddealerOrder/daifuSonOrder.vue
  33. 4
      src/views/order/carddealerOrder/index.vue
  34. 2
      src/views/order/carddealerOrder/pkCouponScopeRangeStoreList.vue
  35. 290
      src/views/order/carddealerOrder/pkCouponScopeRangeStoreList2.vue
  36. 176
      src/views/order/carddealerOrder/readyOrder.vue
  37. 31
      src/views/order/payOrder/csOrder.vue
  38. 38
      src/views/order/payOrder/index.vue
  39. 21
      src/views/order/payOrder/wwc.vue
  40. 198
      src/views/payTest/dfTest.vue
  41. 98
      src/views/payTest/dsTest.vue
  42. 1
      src/views/platform/platformBankCard/index.vue
  43. 1
      src/views/staticsRecord/cardTimeStatistics.vue
  44. 1
      src/views/staticsRecord/dayEndStatistics.vue
  45. 1
      src/views/staticsRecord/dayStatistics.vue
  46. 1
      src/views/staticsRecord/mechantTimeStatistics.vue
  47. 1
      src/views/staticsRecord/merchantCardStat.vue
  48. BIN
      总后台.zip

23
build/[fallback].variant.js

@ -4,15 +4,14 @@
// 支持动态资源 file:logo.png 使用动态资源仅支持访问 assets 下的文件, `file:logo.png` 在代码中被转换为 require("@/assets/logo.png")
// 如果未传入 variant 则使用 fallback.variant.js 文件作为默认变体
module.exports = {
// 网站标题
PAGE_TITLE: "KAKA-PAY",
// 网站图标资源(图片资源)
PAGE_LOGO_URI: "/favicon.ico",
// 登录页面标题
SIGN_UP_TITLE: "KAKA-PAY 后台系统",
// 侧边栏图片资源(图片资源)
SIDEBAR_TITLE_IMAGE_URI: "file:logo/logo.png",
// 侧边栏标题
SIDEBAR_TITLE: "KAKA-PAY",
}
// 网站标题
PAGE_TITLE: "KK-MANAGE",
// 网站图标资源(图片资源)
PAGE_LOGO_URI: "/favicon.ico",
// 登录页面标题
SIGN_UP_TITLE: "KK-MANAGE",
// 侧边栏图片资源(图片资源)
SIDEBAR_TITLE_IMAGE_URI: "file:logo/logo.png",
// 侧边栏标题
SIDEBAR_TITLE: "KK-MANAGE",
}

6
build/absolute_logo.variant.js

@ -1,12 +1,12 @@
module.exports = {
// 网站标题
PAGE_TITLE: "KAKA-PAY absolute_logo",
PAGE_TITLE: "KK-PAY absolute_logo",
// 网站图标资源(图片资源)
PAGE_LOGO_URI: "https://cdn-static.sspai.com/favicon/sspai.ico",
// 登录页面标题
SIGN_UP_TITLE: "KAKA-PAY 后台系统 来自 absolute_logo",
SIGN_UP_TITLE: "KK-PAY 总管理后台 来自 absolute_logo",
// 侧边栏图片资源(图片资源)
SIDEBAR_TITLE_IMAGE_URI: "https://cdn.sspai.com/2023/3/21/article/8dfc0f27-9889-8665-6b65-c69e8c81aa9d.png",
// 侧边栏标题
SIDEBAR_TITLE: "KAKA-PAY 来自 absolute_logo",
SIDEBAR_TITLE: "KK-PAY 来自 absolute_logo",
}

6
build/dynamic_logo.variant.js

@ -1,12 +1,12 @@
module.exports = {
// 网站标题
PAGE_TITLE: "KAKA-PAY dynamic_logo",
PAGE_TITLE: "KK-PAY dynamic_logo",
// 网站图标资源(图片资源)
PAGE_LOGO_URI: "file:404_images/404_cloud.png",
// 登录页面标题
SIGN_UP_TITLE: "KAKA-PAY 后台系统 来自 dynamic_logo",
SIGN_UP_TITLE: "KK-PAY 总管理后台 来自 dynamic_logo",
// 侧边栏图片资源(图片资源)
SIDEBAR_TITLE_IMAGE_URI: "file:404_images/404_cloud.png",
// 侧边栏标题
SIDEBAR_TITLE: "KAKA-PAY 来自 dynamic_logo",
SIDEBAR_TITLE: "KK-PAY 来自 dynamic_logo",
}

6
build/merchant_1.variant.js

@ -1,12 +1,12 @@
module.exports = {
// 网站标题
PAGE_TITLE: "KAKA-PAY",
PAGE_TITLE: "KK-PAY",
// 网站图标资源(图片资源)
PAGE_LOGO_URI: "/favicon.ico",
// 登录页面标题
SIGN_UP_TITLE: "KAKA-PAY 后台系统",
SIGN_UP_TITLE: "KK-PAY 总管理后台",
// 侧边栏图片资源(图片资源)
SIDEBAR_TITLE_IMAGE_URI: "file:logo/logo.png",
// 侧边栏标题
SIDEBAR_TITLE: "KAKA-PAY",
SIDEBAR_TITLE: "KK-PAY",
}

6
build/static_logo.variant.js

@ -1,12 +1,12 @@
module.exports = {
// 网站标题
PAGE_TITLE: "KAKA-PAY 来自 static_logo",
PAGE_TITLE: "KK-PAY 来自 static_logo",
// 网站图标资源(图片资源)
PAGE_LOGO_URI: "/logo.jpeg",
// 登录页面标题
SIGN_UP_TITLE: "KAKA-PAY 后台系统 来自 static_logo",
SIGN_UP_TITLE: "KK-PAY 总管理后台 来自 static_logo",
// 侧边栏图片资源(图片资源)
SIDEBAR_TITLE_IMAGE_URI: "/logo.jpeg",
// 侧边栏标题
SIDEBAR_TITLE: "KAKA-PAY 来自 static_logo",
SIDEBAR_TITLE: "KK-PAY 来自 static_logo",
}

30
src/App.vue

@ -32,21 +32,28 @@ export default {
</script>
<style>
.nest-menu svg{
.pagination-container {
margin-top: 10px;
}
.nest-menu svg {
visibility: hidden;
}
.nest-menu li span{
.nest-menu li span {
position: relative;
}
.nest-menu li span::before{
/* .nest-menu li span::before {
content: '';
width: 10px;
height: 10px;
background: #FFA451;
position: absolute;
left: -25px;
top: 3px;
}
width: 10px;
height: 10px;
background: #FFA451;
position: absolute;
left: -25px;
top: 3px;
} */
.avatar {
width: 100px;
height: 100px;
@ -301,7 +308,8 @@ export default {
.tCenter {
text-align: center;
}</style>
}
</style>
<style scoped>#app .theme-picker {
display: none;
}</style>

77
src/api/form.js

@ -11,6 +11,22 @@ import {
*
*/
export const common_api = {
//查询所有商户
getMerchantList: (query) => {
return request({
url: '/order/payOrder/getMerchantList',
method: 'put',
})
},
//获取商户通道信息
findMerchantChannelInfo: (query) => {
return request({
url: '/order/payOrder/findMerchantChannelInfo',
method: 'get',
params: query,
})
},
//查询所有银行列表
bankListAll: (query) => {
return request({
@ -48,16 +64,16 @@ export const common_api = {
* 商户模块
*/
export const payMerchant = {
// 订单驳回
orderRejection: (query) => {
return request({
url: '/order/TransferOrder/orderRejection',
method: 'get',
params: query
})
},
// 确认付款
confirmPayment: (query) => {
// 订单驳回
orderRejection: (query) => {
return request({
url: '/order/TransferOrder/orderRejection',
method: 'get',
params: query
})
},
// 确认付款
confirmPayment: (query) => {
return request({
url: '/order/TransferOrder/confirmPayment',
method: 'get',
@ -627,6 +643,22 @@ export const payConfig = {
* 商户充值订单管理
*/
export const payToOrder = {
// 超时支付 和 收款
payOrderOvertimePayment: (query) => {
return request({
url: '/order/payOrder/overtimePayment',
method: 'get',
params: query,
})
},
// 拉测试单
notifyOrder: (data) => {
return request({
url: '/order/payOrder/notify?' + qs.stringify(data),
method: 'put',
})
},
// 超时支付
overtimePayment: (query) => {
return request({
@ -672,12 +704,37 @@ export const payDfOrder = {
method: 'put',
})
},
// 代付拉测试单
notifyOrder: (data) => {
return request({
url: '/order/TransferOrder/pullTestPayment?' + qs.stringify(data),
method: 'put',
})
},
}
/**
* 商户代付订单管理
*/
export const payOutOrder = {
// 获取该卡商绑定的银行卡列表(区分代收代付)
getCarddealerCardList: (query) => {
return request({
url: '/order/TransferOrder/getCarddealerCardList',
method: 'get',
params: query,
})
},
// 关闭和成功
setPayOrderSuccess: (query) => {
return request({
url: '/order/TransferOrder/setPayOrderSuccess',
method: 'get',
params: query,
})
},
// 关闭
withdrawOrderClos: (query) => {
return request({

BIN
src/assets/images/close.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 15 KiB

BIN
src/assets/images/leftbottom.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
src/assets/images/lefttop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
src/assets/images/open.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 11 KiB

BIN
src/assets/images/rightbottom.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
src/assets/images/righttop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
src/assets/images/text.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 43 KiB

8
src/assets/styles/variables.scss

@ -9,9 +9,9 @@ $yellow:#FEC171;
$panGreen: #30B08F;
// 默认菜单主题风格
$base-menu-color:#fff;
$base-menu-color:#B3B2B3;;
$base-menu-color-active:#fff;
$base-menu-background:#197CFE;
$base-menu-background:#132353;
$base-logo-title-color: #ffffff;
$base-menu-light-color:rgba(0,0,0,.70);
@ -19,7 +19,7 @@ $base-menu-light-background:#ffffff;
$base-logo-light-title-color: #001529;
$base-sub-menu-background:'';
$base-sub-menu-hover:#006EFF;
$base-sub-menu-hover:#3381E6;
// 自定义暗色菜单风格
/**
@ -60,7 +60,7 @@ $base-sidebar-width: 230px;
.el-menu-item.is-active{
color: #fff !important;
background-color: rgba(0,0,0,.07) !important;
background-color: #3381E6 !important;
}
.el-submenu__title i {
color: #fff !important;

4
src/components/Breadcrumb/index.vue

@ -1,7 +1,7 @@
<template>
<el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb">
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.component">
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
<span v-if="item.redirect === 'noRedirect' || index == levelList.length - 1" class="no-redirect">{{ item.meta.title }}</span>
<a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
</el-breadcrumb-item>
@ -38,7 +38,7 @@ export default {
matched = [{ path: '/index', meta: { title: '首页' }}].concat(matched)
}
this.levelList = matched.filter(item => item.meta && item.meta.title && item.component && item.meta.breadcrumb !== false)
this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
},
isDashboard(route) {
const name = route && route.name

32
src/layout/components/Navbar.vue

@ -1,15 +1,14 @@
<template>
<div class="navbar">
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container"
@toggleClick="toggleSideBar" />
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav" />
<top-nav id="topmenu-container" class="topmenu-container" v-if="topNav" />
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav"/>
<top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/>
<div class="right-menu">
<template v-if="device !== 'mobile'">
<template v-if="device!=='mobile'">
<!-- <search id="header-search" class="right-menu-item" />
<el-tooltip content="源码地址" effect="dark" placement="bottom">
<ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
</el-tooltip>
@ -26,6 +25,7 @@
</template>
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper">
<img :src="avatar" class="user-avatar">
@ -103,15 +103,9 @@ export default {
type: 'warning'
}).then(() => {
this.$store.dispatch('LogOut').then(() => {
location.href = '/login';
location.href = '/index';
})
setTimeout(() => {
location.reload()
}, 500);
}).catch(() => { });
}).catch(() => {});
}
}
}
@ -121,13 +115,9 @@ export default {
.navbar {
height: 50px;
overflow: hidden;
position: fixed;
width: 88%;
z-index: 999;
top: 0;
right: 0;
position: relative;
background: #fff;
box-shadow: 0 1px 4px rgba(0, 21, 41, .08);
box-shadow: 0 1px 4px rgba(0,21,41,.08);
.hamburger-container {
line-height: 46px;
@ -135,7 +125,7 @@ export default {
float: left;
cursor: pointer;
transition: background .3s;
-webkit-tap-highlight-color: transparent;
-webkit-tap-highlight-color:transparent;
&:hover {
background: rgba(0, 0, 0, .025)

45
src/views/carddealer/carddealer/index.vue

@ -156,7 +156,7 @@
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-form-item label="码商名称" prop="username">
<el-input :disabled="form.id" v-model="form.username" placeholder="请输入码商名称" style="width:300px"
<el-input :disabled="form.id!=null||form.id!=''" v-model="form.username" placeholder="请输入码商名称" style="width:300px"
@input="change" />
</el-form-item>
<el-form-item label="手机号" prop="phone">
@ -165,6 +165,10 @@
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱" style="width:300px" @input="change" />
</el-form-item>
<el-form-item label="最大收款限额" prop="">
<el-input v-model="form.limitReceive" placeholder="请输入最大收款限额" style="width:300px" @input="change" />
</el-form-item>
<el-form-item label="上级" prop="superiorId">
<el-select v-model="form.superiorId" placeholder="请选择上级" clearable size="medium">
<el-option v-for="(item, i) in allList" :key="i" :label="item.username" :value="item.id"></el-option>
@ -190,8 +194,8 @@
<span class="custom-tree-node" slot-scope="{ node, data }">
<span>{{ node.label }}</span>
<!-- <span>佣金{{ data. }}%</span> -->
<span>余额{{ NumberDiv(data.balance,100) }}</span>{{ ' ' }}
<span>冻结金额{{ NumberDiv(data.frozenAmount,100) }}</span>{{ ' ' }}
<span>余额{{ NumberDiv(data.balance, 100) }}</span>{{ ' ' }}
<span>冻结金额{{ NumberDiv(data.frozenAmount, 100) }}</span>{{ ' ' }}
<span>卡数{{ data.cardQty }}</span>{{ ' ' }}
<span>备注{{ data.remark }}</span>
@ -459,6 +463,9 @@ export default {
form: {},
//
rules: {
limitReceive: [
{ required: true, message: "最大收款限额不能为空", trigger: "blur" }
],
amount: [
{ required: true, message: "修改金额不能为空", trigger: "blur" }
],
@ -523,9 +530,7 @@ export default {
limitReceiveStatus: [
{ required: true, message: "限制卡收款状态(1-开启,2关闭)不能为空", trigger: "blur" }
],
limitReceive: [
{ required: true, message: "每日最大收款金额不能为空", trigger: "blur" }
],
workStatus: [
{ required: true, message: "上班状态(1上班,2下班)不能为空", trigger: "blur" }
],
@ -732,9 +737,9 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.resetForm("queryForm");
this.handleQuery();
this.dateRange = []
},
//
handleSelectionChange(selection) {
@ -754,6 +759,7 @@ export default {
const id = row.id || this.ids
payCard.getInfo(id).then(response => {
this.form = response.data;
this.form.limitReceive = this.NumberDiv(this.form.limitReceive, 100)
this.open = true;
this.title = "修改码商";
});
@ -826,14 +832,35 @@ export default {
});
}
} else if (type == "form") {
let limitReceive;
this.form.limitReceive ? limitReceive = this.NumberMul(this.form.limitReceive, 100) : limitReceive = null
if (this.form.id != null) {
payCard.updateInfo(this.form).then((response) => {
payCard.updateInfo({
limitReceive: limitReceive,
username: this.form.username,
phone: this.form.phone,
username: this.form.username,
email: this.form.email,
superiorId: this.form.superiorId,
remark: this.form.remark,
password: this.form.password,
id: this.form.id
}).then((response) => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
payCard.addInfo(this.form).then((response) => {
payCard.addInfo({
limitReceive: limitReceive,
username: this.form.username,
phone: this.form.phone,
username: this.form.username,
email: this.form.email,
superiorId: this.form.superiorId,
remark: this.form.remark,
password: this.form.password,
}).then((response) => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();

38
src/views/carddealer/carddealer/pkCouponScopeRangeStoreList.vue

@ -62,14 +62,22 @@
<el-form ref="formChannel" :model="form" :rules="rules" label-width="108px">
<el-form-item label="通道" prop="platformChannelId">
<el-select v-model="form.platformChannelId" placeholder="请选择通道" clearable size="medium" @change="getChannel"
:disabled="form.id">
:disabled="handleType">
<el-option v-for="(item, i) in channelAll" :key="i" :label="item.channelName" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="系统费率">
<el-form-item label="佣金费率" prop="channelRate">
{{ channelData.channelSysRate }}%
</el-form-item>
<el-form-item label="佣金单笔" prop="channelSingleFee">
{{ channelData.channelSysSingleFee }}
</el-form-item>
</el-form-item>
<el-form-item label="上级费率">
<el-form-item label="佣金费率" prop="channelRate">
{{ channelData.channelRate }}
{{ channelData.channelRate }}%
</el-form-item>
<el-form-item label="佣金单笔" prop="channelSingleFee">
{{ channelData.channelSingleFee }}
@ -78,6 +86,7 @@
<el-form-item label="当前码商费率">
<el-form-item label="佣金费率" prop="rate">
<el-input v-model="form.rate" placeholder="请输入佣金费率" style="width:300px" @input="change" />
@ -120,6 +129,8 @@ export default {
},
data() {
return {
handleType: false,
channelData: {},
//
channelAll: [],
@ -173,10 +184,14 @@ export default {
getChannel(e) {
for (var i = 0; i < this.channelAll.length; i++) {
if (e == this.channelAll[i].id) {
this.channelData =
{
"channelRate": this.channelAll[i].pCarddealerChannel.rate,
"channelSingleFee": this.channelAll[i].pCarddealerChannel.singleFee,
"channelSingleFee": this.channelAll[i].pCarddealerChannel.singleFee / 100,
"channelSysRate": this.channelAll[i].channelRate,
"channelSysSingleFee": this.channelAll[i].channelSingleFee / 100,
}
}
}
@ -220,6 +235,7 @@ export default {
//
reset() {
this.form = {};
this.channelData = {};
this.resetForm("form");
},
/** 搜索按钮操作 */
@ -237,6 +253,7 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.handleType = false
this.title = "绑定通道";
},
/** 修改按钮操作 */
@ -244,6 +261,7 @@ export default {
this.reset();
this.getList()
this.detailData = row
this.handleType = true
this.form = row;
this.form.platformChannelId = row.platformChannelId
for (var i = 0; i < this.infoList.length; i++) {
@ -252,8 +270,16 @@ export default {
}
}
this.form.rate = row.rate
this.channelData.channelRate = row.pCarddealerChannel.rate
this.channelData.channelSingleFee = row.pCarddealerChannel.singleFee
if (row.pCarddealerChannel) {
this.channelData.channelRate = row.pCarddealerChannel.rate
this.channelData.channelSingleFee = row.pCarddealerChannel.singleFee / 100
this.channelData.channelSysRate = row.platformChannel.channelRate
this.channelData.channelSysSingleFee = row.platformChannel.channelSingleFee / 100
} else {
this.channelData.channelRate = 0
this.channelData.channelSingleFee = 0
}
this.title = "费率";
this.open = true;
},
@ -288,7 +314,7 @@ export default {
} else {
payCard.upChannel({
platformChannelId: this.form.platformChannelId,
id: this.pkCouponId,
id: this.form.id,
rate: this.form.rate,
singleFee: singleFee,
carddealerId: this.pkCouponId,

3
src/views/carddealer/carddealerCard/index.vue

@ -93,7 +93,7 @@
<el-table-column label="下卡原因" align="center" prop="downReason" />
<el-table-column :label="'收款区间'" align="center" prop="singleMin" min-width="180">
<template slot-scope="scope">
{{ scope.row.singleMin }} ~ {{ scope.row.singleMax }}
{{ NumberDiv(scope.row.singleMin, 100) }} ~ {{ NumberDiv(scope.row.singleMax, 100) }}
</template>
</el-table-column>
@ -359,6 +359,7 @@ export default {
if (res.code === 200) {
this.$message.success("设置成功");
this.open = false
this.getList()
}
});
}

6
src/views/configuration/daifuConfig.vue

@ -31,10 +31,10 @@
</div>
</el-form-item>
<el-form-item label="最大最小值" prop="">
<el-input v-model="form.payMax" placeholder="请输入最大值" style="width: 260px;border-color: #E6F1FF;">
</el-input> --
<el-form-item label="最小最大值" prop="">
<el-input v-model="form.payMin" placeholder="请输入最小值" style="width: 260px;border-color: #E6F1FF;">
</el-input> --
<el-input v-model="form.payMax" placeholder="请输入最大值" style="width: 260px;border-color: #E6F1FF;">
</el-input>
</el-form-item>

6
src/views/configuration/daishouConfig.vue

@ -38,10 +38,10 @@
</el-input>
</el-form-item>
<el-form-item label="最大最小值" prop="">
<el-input v-model="form.payMax" placeholder="请输入最大值" style="width: 260px;border-color: #E6F1FF;">
</el-input> --
<el-form-item label="最小最大值" prop="">
<el-input v-model="form.payMin" placeholder="请输入最小值" style="width: 260px;border-color: #E6F1FF;">
</el-input> --
<el-input v-model="form.payMax" placeholder="请输入最大值" style="width: 260px;border-color: #E6F1FF;">
</el-input>
</el-form-item>

17
src/views/dashboard/PanelGroup.vue

@ -4,8 +4,9 @@
<div class="title">当日数据统计</div>
<div class="title">
时间
<el-date-picker v-model="dateRange" size="small" style="width: 340px" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :unlink-panels="true"></el-date-picker>
<el-date-picker v-model="dateRange" size="small" style="width: 340px" value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
:unlink-panels="true"></el-date-picker>
<el-button type="primary" icon="" size="mini" @click="getList" style="margin-left:10px">搜索</el-button>
</div>
<div class="big_er clearfix">
@ -31,7 +32,7 @@
<div class="card-panel" @click="handleSetLineChartData('messages')">
<div class="card-panel-description">
<div class="card-panel-text">代收成功订单金额</div>
<div class="card-panel-num">{{ data.paySuccessAmount }}</div>
<div class="card-panel-num">{{ NumberDiv(data.paySuccessAmount, 100) }}</div>
</div>
</div>
@ -63,7 +64,7 @@
<div class="card-panel" @click="handleSetLineChartData('messages')">
<div class="card-panel-description">
<div class="card-panel-text">代付成功订单金额</div>
<div class="card-panel-num">{{ data.transferSuccessAmount }}</div>
<div class="card-panel-num">{{ NumberDiv(data.transferSuccessAmount, 100) }}</div>
</div>
</div>
@ -100,7 +101,7 @@
<div class="card-panel" @click="handleSetLineChartData('messages')">
<div class="card-panel-description">
<div class="card-panel-text">接单总额度</div>
<div class="card-panel-num">{{ data.limitReceiveTotalAmount }}</div>
<div class="card-panel-num">{{ NumberDiv(data.limitReceiveTotalAmount,100) }}</div>
</div>
</div>
@ -130,7 +131,7 @@
<div class="card-panel" @click="handleSetLineChartData('messages')">
<div class="card-panel-description">
<div class="card-panel-text">在线卡剩余额度</div>
<div class="card-panel-num">{{ data.cardSurplusReceiveTotalAmount }}</div>
<div class="card-panel-num">{{ NumberDiv(data.cardSurplusReceiveTotalAmount, 100) }}</div>
</div>
</div>
@ -191,7 +192,7 @@ export default {
data: {},
systemDate: '',
queryParams: {},
dateRange:[],
dateRange: [],
};
},
components: {
@ -212,7 +213,7 @@ export default {
} else {
this.systemDate = date.year + '-' + 0 + date.month + '-' + date.date;
}
this.dateRange=[this.systemDate+' '+'00'+':'+'00'+':'+'00',this.systemDate+' '+'23'+':'+'59'+':'+'59']
this.dateRange = [this.systemDate + ' ' + '00' + ':' + '00' + ':' + '00', this.systemDate + ' ' + '23' + ':' + '59' + ':' + '59']
this.$forceUpdate()
},
handleSetLineChartData(type) {

131
src/views/login.vue

@ -4,21 +4,22 @@
<h3 class="title">{{ $appVariant.SIGN_UP_TITLE }}</h3>
<el-form-item prop="username">
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="后台账号">
<!-- <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> -->
<img src="../assets/images/Vector.png" slot="prefix" alt="" srcset="" class="el-input__icon input-icon" />
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input v-model="loginForm.password" :type="type" auto-complete="off" placeholder="登陆密码"
@keyup.enter.native="handleLogin">
<!-- <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> -->
<img src="../assets/images/Frame.png" slot="prefix" alt="" srcset="" class="el-input__icon input-icon" />
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
<img src="../assets/images/close.png" slot="suffix" alt="" srcset="" class="el-input__icon input-icon"
v-if="show" style="height:10px;cursor:pointer" @click="type = 'input', show = false" />
v-if="show" style="height:18px;cursor:pointer" @click="type = 'input', show = false" />
<img src="../assets/images/open.png" slot="suffix" alt="" srcset="" class="el-input__icon input-icon" v-else
style="height:22px;cursor:pointer" @click="type = 'password', show = true" />
style="height:18px;cursor:pointer" @click="type = 'password', show = true" />
</el-input>
</el-form-item>
<!-- <el-form-item prop="code" v-if="captchaEnabled">
<el-input v-model="loginForm.code" auto-complete="off" placeholder="验证码" style="width: 63%"
@keyup.enter.native="handleLogin">
@ -35,8 +36,8 @@
@keyup.enter.native="handleLogin">
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
</el-input>
<img src="../assets/images/text.png" alt="" srcset="" class="el-input__icon input-icon doImg"
style="width: 76px;height:20px;cursor:pointer" @click="go()" />
<!-- <img src="../assets/images/text.png" alt="" srcset="" class="el-input__icon input-icon doImg"
style="width: 63px;height:17px;cursor:pointer" @click="go()" /> -->
<!-- <div class="loginText">登录商户系统</div> -->
</el-form-item>
<el-form-item style="width:100%;">
@ -50,6 +51,12 @@
</div>
</el-form-item>
</el-form>
<img src="../assets/images/lefttop.png" slot="suffix" alt="" class="lefttop" />
<img src="../assets/images/rightbottom.png" slot="suffix" alt="" class="rightbottom" />
<img src="../assets/images/leftbottom.png" slot="suffix" alt="" class="leftbottom" />
<img src="../assets/images/righttop.png" slot="suffix" alt="" class="righttop" />
</div>
</template>
@ -187,6 +194,36 @@ export default {
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.leftbottom {
position: absolute;
left: 100px;
bottom: 100px;
width: 155x;
height: 194px;
}
.righttop {
position: absolute;
right: 100px;
top: 100px;
width: 316x;
height: 135px;
}
.lefttop {
position: absolute;
left: 0;
top: 0;
width: 479px;
height: 424px;
}
.rightbottom {
position: absolute;
right: 0;
bottom: 0;
width: 421px;
height: 554px;
}
.loginText {
font-weight: 400;
font-size: 12px;
@ -199,7 +236,7 @@ export default {
.doImg {
position: absolute;
right: 0;
right: 4px;
top: 0;
}
@ -224,13 +261,14 @@ export default {
}
::v-deep .el-input__inner {
background-color: unset !important;
border: none;
border-bottom: 1px solid #fff;
color: #fff;
border-radius: 0;
color: #000;
padding-left: 40px;
padding-right: 80px;
background: #FFFFFF;
border: 1px solid #DBDCE2;
border-radius: 4px;
height: 40px;
line-height: 40px;
}
.login {
@ -239,16 +277,16 @@ export default {
align-items: center;
height: 100%;
background-size: contain;
background-color: #6271FF;
background-image: url('../assets/images/image2.png');
background-color: #F6F6F6;
background-repeat: no-repeat;
background-position: bottom;
position: relative;
}
.title {
margin: 0px auto 30px auto;
text-align: center;
color: #fff;
color: #000;
font-weight: 600;
font-size: 37px;
}
@ -267,11 +305,62 @@ export default {
}
.input-icon {
height: 24px;
width: 24px;
margin-left: 0px;
margin-top: 5px;
height: 16px;
width: 22px;
margin-top: 12px;
}
}
.login-tip {
font-size: 13px;
text-align: center;
color: #bfbfbf;
}
.login-code {
width: 33%;
height: 38px;
float: right;
img {
cursor: pointer;
vertical-align: middle;
}
}
.el-login-footer {
height: 40px;
line-height: 40px;
position: fixed;
bottom: 0;
width: 100%;
text-align: center;
color: #fff;
font-family: Arial;
font-size: 12px;
letter-spacing: 1px;
}
.login-code-img {
height: 38px;
}
.login-form {
border-radius: 6px;
width: 400px;
padding: 25px 25px 5px 25px;
.el-input {
height: 38px;
input {
height: 38px;
}
}
}
.login-tip {

30
src/views/merchant/merchant/index.vue

@ -303,11 +303,11 @@ export default {
type: [
{
label: "增加",
value: 1,
value: 'add',
},
{
label: "减少",
value: 2,
value: 'subtract',
},
],
// ip
@ -506,10 +506,20 @@ export default {
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
this.form = row;
this.open = true;
this.title = "修改商户";
this.form.securityDepositAmount=this.NumberDiv(this.form.securityDepositAmount,100)
listMerchant().then(
(response) => {
for (var i = 0; i < response.rows.length; i++) {
if (id == response.rows[i].id) {
this.form = response.rows[i];
this.open = true;
this.title = "修改商户";
this.form.securityDepositAmount = this.NumberDiv(this.form.securityDepositAmount, 100)
}
}
}
);
},
// md5
handleMD5(row) {
@ -592,7 +602,13 @@ export default {
}
//
if (type == "formBalance") {
payMerchant.operatingBalance(this.form).then((response) => {
let amount = this.NumberMul(this.form.amount, 100);
payMerchant.operatingBalance({
id: this.form.id,
type: this.form.type,
amount: amount,
googleCode: this.form.googleCode,
}).then((response) => {
this.msgSuccess("操作成功");
this.openBalance = false;
this.getList();

125
src/views/order/TransferOrder/daifuSonOrder.vue

@ -126,6 +126,18 @@
<template slot-scope="scope">
<el-button size="small" type="text" @click="handleView(scope.row)"
style="color: #006eff">详情</el-button>
<el-button size="small" type="text" @click="handleClose(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 1 || scope.row.orderStatus == 2">
关闭
</el-button>
<el-button size="small" type="text" @click="handlePay(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 2">
确认付款
</el-button>
<el-button size="small" type="text" @click="handleReject(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 2">
驳回
</el-button>
</template>
</el-table-column>
</el-table>
@ -174,7 +186,7 @@
{{ detailInfoList.cardNumber }}
</el-form-item>
<el-form-item label="币种">
CNY
{{ detailInfoList.currency }}
</el-form-item>
<el-form-item label="订单状态">
{{ detailInfoList.orderStatus == 1 ? '处理中' : detailInfoList.orderStatus == 2 ? '审核中' :
@ -200,14 +212,39 @@
</el-form>
</el-dialog>
<!-- 关闭 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入原因" style="width:300px" type="textarea" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm('form')"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 驳回 -->
<el-dialog :title="title" :visible.sync="openReject" width="500px" append-to-body>
<el-form ref="formReject" :model="form" :rules="rules" label-width="110px">
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入原因" style="width:300px" type="textarea" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm('formReject')"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listTransferOrderSub, getTransferOrderSub, delTransferOrderSub, addTransferOrderSub, updateTransferOrderSub, exportTransferOrderSub } from "@/api/order/TransferOrderSub";
import { payOutOrder } from "@/api/form";
import { payOutOrder, payMerchant } from "@/api/form";
import { common_api } from "@/api/form";
@ -244,6 +281,8 @@ export default {
title: "",
//
open: false,
openReject: false,
//
queryParams: {
pageNum: 1,
@ -288,6 +327,7 @@ export default {
form: {},
//
rules: {
remarks: [{ required: true, message: "请输入原因", trigger: "blur" }],
}
};
@ -297,7 +337,43 @@ export default {
this.init();
},
methods: {
/** 驳回按钮操作 */
handleReject(row) {
this.reset();
this.openReject = true;
this.form.orderSubNo = row.orderNo
this.title = "驳回";
},
/** 确认付款操作 */
handlePay(row) {
const ids = row.orderNo || this.ids;
this.$confirm(
'是否确认付款',
"警告",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(function () {
return payMerchant.confirmPayment({
orderSubNo: ids
});
})
.then(() => {
this.getList();
this.msgSuccess("操作成功");
})
.catch(() => { });
},
/** 关闭按钮操作 */
handleClose(row) {
this.reset();
this.open = true;
this.form.orderSubNo = row.orderNo
this.title = "关闭";
},
init() {
//
common_api.carddealerChannelAll().then(response => {
@ -311,7 +387,7 @@ export default {
pageNum: this.queryParams.pageNum,
pageSize: this.queryParams.pageSize,
orderStatus: this.queryParams.orderStatus,
amount: typeof(amount)=='object'?null:!amount?null:parseFloat(amount),
amount: typeof (amount) == 'object' ? null : !amount ? null : parseFloat(amount),
accountName: this.queryParams.accountName,
cardNumber: this.queryParams.cardNumber,
carddealerId: this.queryParams.carddealerId,
@ -330,6 +406,7 @@ export default {
//
cancel() {
this.open = false;
this.openReject = false
this.reset();
},
//
@ -342,7 +419,7 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
var amount;
this.queryParams.amount ? amount = this.NumberMul(this.queryParams.reqAmount, 100) : this.queryParams.amount
this.queryParams.amount ? amount = this.NumberMul(this.queryParams.amount, 100) : this.queryParams.amount
amount = parseFloat(amount)
this.queryParams.pageNum = 1;
amount ? this.getList(amount) : this.getList(null)
@ -386,20 +463,40 @@ export default {
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
submitForm(type) {
this.$refs[type].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateTransferOrder(this.form).then(response => {
this.msgSuccess("修改成功");
const loading = this.$loading({
lock: true,
text: `正在操作`,
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
if (type == 'form') {
payMerchant.closeOrderSub({
orderSubNo: this.form.orderSubNo,
remarks: this.form.remarks
}).then((response) => {
loading.close();
this.open = false;
this.msgSuccess("操作成功");
this.getList();
}).catch(() => {
loading.close();
});
} else {
addTransferOrder(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
}
if (type == 'formReject') {
payMerchant.orderRejection({
orderSubNo: this.form.orderSubNo,
remarks: this.form.remarks
}).then((response) => {
loading.close();
this.openReject = false;
this.msgSuccess("操作成功");
this.getList();
}).catch(() => {
loading.close();
});
}
}

16
src/views/order/TransferOrder/index.vue

@ -89,7 +89,8 @@
<el-table-column :label="'类型'" align="center" prop="securityDepositAmount">
<template slot-scope="scope">
{{ scope.row.orderSource == 1 ? '接口' : scope.row.orderSource == 2 ? '商户提现' : '商户后台付款' }}
{{ scope.row.orderSource == 1 ? '接口' : scope.row.orderSource == 2 ? '商户提现' : scope.row.orderSource
== 3 ? '商户后台付款' : '码商提现' }}
</template>
</el-table-column>
@ -144,7 +145,7 @@
<el-button size="small" type="text" @click="getCertificate(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 2">凭证下载</el-button>
<el-button size="small" type="text" @click="handleSonOrder(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 2">子单</el-button>
>子单</el-button>
</template>
</el-table-column>
</el-table>
@ -207,7 +208,8 @@
{{ detailInfoList.bankName }}
</el-form-item>
<el-form-item label="类型">
{{ detailInfoList.orderSource == 1 ? '接口' : detailInfoList.orderSource == 2 ? '商户提现' : '商户后台付款' }}
{{ detailInfoList.orderSource == 1 ? '接口' : detailInfoList.orderSource == 2 ? '商户提现' : detailInfoList.orderSource
== 3 ? '商户后台付款' : '码商提现' }}
</el-form-item>
<el-form-item label="收款人">
{{ detailInfoList.accountName }}
@ -217,7 +219,7 @@
detailInfoList.notifyStatus == 2 ? '通知进行中' : '超时' }}
</el-form-item>
<el-form-item label="通道费率">
{{ detailInfoList.merchantRate + '+' + NumberDiv(detailInfoList.merchantSingleFee, 100) }}
{{ detailInfoList.merchantRate + '%+' + NumberDiv(detailInfoList.merchantSingleFee, 100) }}
</el-form-item>
</div>
</div>
@ -302,6 +304,10 @@ export default {
label: '商户后台付款',
value: 3,
},
{
label: '码商提现',
value: 4,
},
],
//
form: {},
@ -525,9 +531,9 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.resetForm("queryForm");
this.handleQuery();
this.dateRange = []
},
//
handleSelectionChange(selection) {

3
src/views/order/TransferOrder/pkCouponScopeRangeStoreList.vue

@ -166,11 +166,10 @@ export default {
this.loading = true;
let queryParams = {
orderNo: this.queryParams.pkCouponId,
orderSource: 4
}
listTransferOrder(queryParams)
.then((response) => {
this.infoList = response.data;
this.infoList = response.rows;
this.total = Number(response.total);
this.loading = false;
});

9
src/views/order/TransferOrder/pkCouponScopeRangeStoreList2.vue

@ -27,9 +27,9 @@
<el-table-column label="子订单号" align="center" prop="orderNo" />
<el-table-column label="码商" align="center" prop="carddealerName" />
<el-table-column :label="'金额'" align="center" prop="reqAmount">
<el-table-column :label="'金额'" align="center" prop="amount">
<template slot-scope="scope">
{{ NumberDiv(scope.row.reqAmount, 100) }}
{{ NumberDiv(scope.row.amount, 100) }}
</template>
</el-table-column>
<el-table-column label="时间" align="center" prop="createTime" min-width="180" />
@ -171,7 +171,7 @@ export default {
}
payMerchant.selectOrderSub(queryParams)
.then((response) => {
this.infoList = response.data;
this.infoList = response.rows;
this.total = Number(response.total);
this.loading = false;
});
@ -286,4 +286,7 @@ export default {
.el-radio {
line-height: 2;
}
.pagination-container{
margin-top: 10px;
}
</style>

56
src/views/order/TransferOrder/readyOrder.vue

@ -83,7 +83,8 @@
<el-table-column :label="'类型'" align="center" prop="securityDepositAmount">
<template slot-scope="scope">
{{ scope.row.orderSource == 1 ? '接口' : scope.row.orderSource == 2 ? '商户提现' : '商户后台付款' }}
{{ scope.row.orderSource == 1 ? '接口' : scope.row.orderSource == 2 ? '商户提现' : scope.row.orderSource
== 3 ? '商户后台付款' : '码商提现' }}
</template>
</el-table-column>
@ -131,8 +132,7 @@
<el-table-column label="创建时间" align="center" prop="createTime" min-width="180" />
<el-table-column label="更新时间" align="center" prop="updateTime" min-width="180" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"
min-width="180">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button size="small" type="text" @click="switchStatusChange(scope.row, 'status')"
style="color: #006eff">
@ -142,6 +142,8 @@
style="color: #006eff">分配</el-button>
<el-button size="small" type="text" @click="handleOut(scope.row)"
style="color: #006eff">关闭</el-button>
<el-button size="small" type="text" @click="handleSuccess(scope.row)"
style="color: #006eff">成功</el-button>
<el-button size="small" type="text" @click="handleView(scope.row)"
style="color: #006eff">详情</el-button>
<el-button size="small" type="text" @click="handleSonOrder(scope.row)"
@ -209,8 +211,9 @@
{{ detailInfoList.bankName }}
</el-form-item>
<el-form-item label="类型">
{{ detailInfoList.orderSource == 1 ? '接口' : detailInfoList.orderSource == 2 ? '商户提现' : '商户后台付款'
}}
{{ detailInfoList.orderSource == 1 ? '接口' : detailInfoList.orderSource == 2 ? '商户提现' :
detailInfoList.orderSource
== 3 ? '商户后台付款' : '码商提现' }}
</el-form-item>
<el-form-item label="收款人">
{{ detailInfoList.accountName }}
@ -220,7 +223,7 @@
detailInfoList.notifyStatus == 2 ? '通知进行中' : '超时' }}
</el-form-item>
<el-form-item label="通道费率">
{{ detailInfoList.merchantRate + '+' + NumberDiv(detailInfoList.merchantSingleFee, 100) }}
{{ detailInfoList.merchantRate + '%+' + NumberDiv(detailInfoList.merchantSingleFee, 100) }}
</el-form-item>
</div>
</div>
@ -239,9 +242,9 @@
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="付款卡" prop="cardId">
<el-select v-model="form.cardId" placeholder="请选择付款卡" clearable size="medium">
<!-- cardId -->
<el-form-item label="付款卡">
<el-select v-model="form.cardId" placeholder="请选择付款卡" clearable size="medium" @change="change">
<el-option v-for="(item, i) in cardCon" :key="i" :label="item.bankName"
:value="item.id"></el-option>
</el-select>
@ -341,6 +344,10 @@ export default {
label: '商户后台付款',
value: 3,
},
{
label: '码商提现',
value: 4,
},
],
//
form: {},
@ -485,9 +492,10 @@ export default {
},
//
getValue(e) {
console.log(e)
payOutOrder.getCarddealerCard({
this.form.cardId = null
payOutOrder.getCarddealerCardList({
carddealerId: e,
channelType:2
}).then((response) => {
this.cardCon = response.data;
});
@ -658,6 +666,10 @@ export default {
},
/** 提交按钮 */
submitForm() {
if(!this.form.cardId){
this.$message.error('请选择银行卡')
return;
}
this.$refs["form"].validate(valid => {
if (valid) {
let amount;
@ -676,6 +688,23 @@ export default {
});
}
});
},
/** 成功按钮操作 */
handleSuccess(row) {
const ids = row.orderNo || this.ids;
this.$confirm('是否确认订单编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return payOutOrder.setPayOrderSuccess({
orderNo: ids,
isSuccess: 1,
});
}).then(() => {
this.getList();
this.msgSuccess("操作成功");
})
},
/** 关闭按钮操作 */
handleOut(row) {
@ -685,8 +714,9 @@ export default {
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return payOutOrder.withdrawOrderClos({
orderNo: ids
return payOutOrder.setPayOrderSuccess({
orderNo: ids,
isSuccess: 2,
});
}).then(() => {
this.getList();

526
src/views/order/carddealerOrder/carddealerSonOrder.vue

@ -0,0 +1,526 @@
<template>
<div class="app-container">
<div class="flexBet searchTop">
<div class="title flex m20">
<div class="bar"></div>
<div class="text">提现子单</div>
</div>
<el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</div>
<div class="bg">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="106px"
class="flex form" style="padding: 0 20px; position: relative">
<el-form-item label="总订单号" prop="mainOrderNo">
<el-input size="medium" v-model="queryParams.mainOrderNo" placeholder="请输入总订单号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="子订单号" prop="orderNo">
<el-input size="medium" v-model="queryParams.orderNo" placeholder="请输入子订单号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="商户订单号" prop="merchantOrderNo">
<el-input size="medium" v-model="queryParams.merchantOrderNo" placeholder="请输入商户订单号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="卡商" prop="carddealerId">
<el-select v-model="queryParams.carddealerId" placeholder="请选择卡商" clearable size="medium">
<el-option v-for="(item, i) in carddealerChannelAll" :key="i" :label="item.username"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="收款卡号" prop="cardNumber">
<el-input size="medium" v-model="queryParams.cardNumber" placeholder="请输入收款卡号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="持卡人姓名" prop="accountName">
<el-input size="medium" v-model="queryParams.accountName" placeholder="请输入持卡人姓名"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="订单金额" prop="amount">
<el-input size="medium" v-model="queryParams.amount" placeholder="请输入订单金额"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="状态" prop="orderStatus">
<el-select v-model="queryParams.orderStatus" placeholder="请选择状态" clearable size="medium">
<el-option v-for="(item, i) in showAll" :key="i" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker v-model="dateRange" size="small" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
:unlink-panels="true"></el-date-picker>
</el-form-item>
<el-form-item>
<div class="searchTop flexBet" style="align-items: center">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left: 20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleExport()">导出</el-button>
</el-col>
</el-row>
</div>
</el-form-item>
</el-form>
<el-table stripe :data="infoList" v-loading="loading">
<el-table-column label="总订单号" align="center" prop="mainOrderNo" />
<el-table-column label="子订单号" align="center" prop="orderNo" />
<el-table-column label="商户订单号" align="center" prop="merchantOrderNo" />
<el-table-column label="商户" align="center" prop="merchantName" />
<el-table-column :label="'订单金额'" align="center" prop="amount">
<template slot-scope="scope">
{{ NumberDiv(scope.row.amount, 100) }}
</template>
</el-table-column>
<el-table-column label="银行名称" align="center" prop="bankName" />
<el-table-column label="卡号" align="center" prop="cardNumber" />
<el-table-column label="姓名" align="center" prop="accountName" />
<el-table-column label="开户行" align="center" prop="branchName" />
<el-table-column :label="'状态'" align="center" prop="payeeRealAmount">
<template slot-scope="scope">
{{ scope.row.orderStatus == 1 ? '处理中' : scope.row.orderStatus == 2 ? '审核中' : scope.row.orderStatus
== 3 ? '成功'
: scope.row.orderStatus == 4 ? '驳回' : scope.row.orderStatus == 5 ? '已撤销' : '已关闭' }}
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" min-width="180" />
<el-table-column label="更新时间" align="center" prop="updateTime" min-width="180" />
<el-table-column label="码商" align="center" prop="carddealerName" />
<el-table-column :label="'付款卡(必须一致)'" align="center" prop="payeeRealAmount" min-width="180">
<template slot-scope="scope">
{{ scope.row.accountName }}{{ scope.row.bankName }}{{ scope.row.cardNumber }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button size="small" type="text" @click="handleView(scope.row)"
style="color: #006eff">详情</el-button>
<el-button size="small" type="text" @click="handleClose(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 1 || scope.row.orderStatus == 2">
关闭
</el-button>
<el-button size="small" type="text" @click="handlePay(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 2">
确认付款
</el-button>
<el-button size="small" type="text" @click="handleReject(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 2">
驳回
</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">
</pagination>
</div>
<!-- 详情 -->
<el-dialog v-dialogDrag :close-on-click-modal="false" :title="detailTitle" :visible.sync="isShowDetail" width="40%"
append-to-body>
<el-form label-width="142px" :label-suffix="':'">
<div style="display: flex;justify-content: space-around;">
<div class="card-detail">
<el-form-item label="总单号">
{{ detailInfoList.mainOrderNo }}
</el-form-item>
<el-form-item label="子单号">
{{ detailInfoList.orderNo }}
</el-form-item>
<el-form-item label="商户名称">
{{ detailInfoList.merchantName }}
</el-form-item>
<el-form-item label="商户编号">
{{ detailInfoList.merchantNo }}
</el-form-item>
<el-form-item label="订单金额">
{{ NumberDiv(detailInfoList.amount, 100) }}
</el-form-item>
<el-form-item label="手续费">
{{ NumberDiv(detailInfoList.carddealerSingleFee, 100) }}
</el-form-item>
<el-form-item label="到账金额">
{{ NumberDiv(detailInfoList.commissionFee, 100) }}
</el-form-item>
<el-form-item label="创建时间">
{{ detailInfoList.createTime }}
</el-form-item>
<el-form-item label="更新时间">
{{ detailInfoList.updateTime }}
</el-form-item>
</div>
<div class="card-detail">
<el-form-item label="收款卡号">
{{ detailInfoList.cardNumber }}
</el-form-item>
<el-form-item label="币种">
{{ detailInfoList.currency }}
</el-form-item>
<el-form-item label="订单状态">
{{ detailInfoList.orderStatus == 1 ? '处理中' : detailInfoList.orderStatus == 2 ? '审核中' :
detailInfoList.orderStatus
== 3 ? '成功'
: detailInfoList.orderStatus == 4 ? '驳回' : detailInfoList.orderStatus == 5 ? '已撤销' : '已关闭' }}
</el-form-item>
<el-form-item label="开户行">
{{ detailInfoList.branchName }}
</el-form-item>
<el-form-item label="银行名称">
{{ detailInfoList.bankName }}
</el-form-item>
<el-form-item label="收款人">
{{ detailInfoList.accountName }}
</el-form-item>
<el-form-item label="备注">
{{ detailInfoList.remark }}
</el-form-item>
</div>
</div>
</el-form>
</el-dialog>
<!-- 关闭 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入原因" style="width:300px" type="textarea" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm('form')"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 驳回 -->
<el-dialog :title="title" :visible.sync="openReject" width="500px" append-to-body>
<el-form ref="formReject" :model="form" :rules="rules" label-width="110px">
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入原因" style="width:300px" type="textarea" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm('formReject')"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listTransferOrderSub, getTransferOrderSub, delTransferOrderSub, addTransferOrderSub, updateTransferOrderSub, exportTransferOrderSub } from "@/api/order/TransferOrderSub";
import { payOutOrder, payMerchant } from "@/api/form";
import { common_api } from "@/api/form";
export default {
name: "TransferOrder",
dicts: ['collection_order_status'],
data() {
return {
//
carddealerChannelAll: [],
//
isShowDetail: false,
//
detailTitle: "",
//
detailInfoList: {},
dateRange: [],
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
infoList: [],
//
title: "",
//
open: false,
openReject: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
orderNo: null,
merchantOrderNo: null,
merchantNo: null,
merchantRate: null,
merchantSingleFee: null,
orderStatus: null,
bankName: null,
accountName: null,
cardNumber: null,
merchantName: null,
amount: null,
carddealerName: null,
mainOrderNo: null,
carddealerId: null,
orderSource: 4,
},
showAll: [
{
label: '处理中',
value: 1,
},
{
label: '审核中',
value: 2,
},
{
label: '成功',
value: 3,
},
{
label: '驳回',
value: 4,
},
{
label: '已撤销',
value: 5,
},
{
label: '已关闭',
value: 6,
},
],
//
form: {},
//
rules: {
remarks: [{ required: true, message: "请输入原因", trigger: "blur" }],
}
};
},
created() {
this.getList();
this.init();
},
methods: {
/** 驳回按钮操作 */
handleReject(row) {
this.reset();
this.openReject = true;
this.form.orderSubNo = row.orderNo
this.title = "驳回";
},
/** 确认付款操作 */
handlePay(row) {
const ids = row.orderNo || this.ids;
this.$confirm(
'是否确认付款',
"警告",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(function () {
return payMerchant.confirmPayment({
orderSubNo: ids
});
})
.then(() => {
this.getList();
this.msgSuccess("操作成功");
})
.catch(() => { });
},
/** 关闭按钮操作 */
handleClose(row) {
this.reset();
this.open = true;
this.form.orderSubNo = row.orderNo
this.title = "关闭";
},
init() {
//
common_api.carddealerChannelAll().then(response => {
this.carddealerChannelAll = response.data;
});
},
/** 查询代付订单列表 */
getList() {
this.loading = true;
let amount;
this.queryParams.amount ? amount = this.NumberMul(this.queryParams.amount, 100) : amount = null
let queryParams = {
amount: amount,
orderStatus: this.queryParams.orderStatus,
accountName: this.queryParams.accountName,
cardNumber: this.queryParams.cardNumber,
carddealerId: this.queryParams.carddealerId,
merchantOrderNo: this.queryParams.merchantOrderNo,
orderNo: this.queryParams.orderNo,
mainOrderNo: this.queryParams.mainOrderNo,
orderSource: 4,
}
listTransferOrderSub(this.addSESDateRange(queryParams, this.dateRange)).then(response => {
this.infoList = response.rows;
this.total = Number(response.total);
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.openReject = false
this.reset();
},
//
reset() {
this.form = {
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
this.dateRange = []
},
//
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 = "添加代付订单";
},
//
handleView(row) {
const id = row.orderNo;
getTransferOrderSub(id).then((response) => {
this.detailInfoList = response.data;
this.isShowDetail = true;
this.detailTitle = "详情";
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getTransferOrder(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改代付订单";
});
},
/** 提交按钮 */
submitForm(type) {
this.$refs[type].validate((valid) => {
if (valid) {
const loading = this.$loading({
lock: true,
text: `正在操作`,
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
if (type == 'form') {
payMerchant.closeOrderSub({
orderSubNo: this.form.orderSubNo,
remarks: this.form.remarks
}).then((response) => {
loading.close();
this.open = false;
this.msgSuccess("操作成功");
this.getList();
}).catch(() => {
loading.close();
});
}
if (type == 'formReject') {
payMerchant.orderRejection({
orderSubNo: this.form.orderSubNo,
remarks: this.form.remarks
}).then((response) => {
loading.close();
this.openReject = false;
this.msgSuccess("操作成功");
this.getList();
}).catch(() => {
loading.close();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除代付订单编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return delTransferOrder(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return exportTransferOrderSub(queryParams);
}).then(response => {
this.download(response.msg);
})
}
}
};
</script>

2
src/views/order/carddealerOrder/daifuSonOrder.vue

@ -174,7 +174,7 @@
{{ detailInfoList.cardNumber }}
</el-form-item>
<el-form-item label="币种">
CNY
{{ detailInfoList.currency }}
</el-form-item>
<el-form-item label="订单状态">
{{ detailInfoList.orderStatus == 1 ? '处理中' : detailInfoList.orderStatus == 2 ? '审核中' :

4
src/views/order/carddealerOrder/index.vue

@ -104,7 +104,7 @@
<template slot-scope="scope">
<el-button size="small" type="text" @click="handleView(scope.row)" style="color: #006eff">详情</el-button>
<el-button size="small" type="text" @click="handleSonOrder(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 2">子单</el-button>
>子单</el-button>
</template>
</el-table-column>
</el-table>
@ -431,9 +431,9 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.resetForm("queryForm");
this.handleQuery();
this.dateRange = []
},
//
handleSelectionChange(selection) {

2
src/views/order/carddealerOrder/pkCouponScopeRangeStoreList.vue

@ -170,7 +170,7 @@ export default {
}
listTransferOrder(queryParams)
.then((response) => {
this.infoList = response.data;
this.infoList = response.rows;
this.total = Number(response.total);
this.loading = false;
});

290
src/views/order/carddealerOrder/pkCouponScopeRangeStoreList2.vue

@ -0,0 +1,290 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="116px" class="flex form"
style="padding: 0 20px; position: relative;font-size: 18px;">
<el-form-item>
<div class="searchTop flexBet" style="align-items: center">
<!-- <el-row :gutter="10" class="mb8" style="margin-left: 20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd()">绑定通道</el-button>
</el-col>
</el-row> -->
</div>
</el-form-item>
<el-form-item label="代付总额" prop="reqAmount">
{{ NumberDiv(pkCouponStore.reqAmount, 100) }}
</el-form-item>
<el-form-item label="已代付金额" prop="payeeRealAmount">
{{ NumberDiv(pkCouponStore.payeeRealAmount, 100) }}
</el-form-item>
<el-form-item label="剩余可申请金额" prop="applicableAmount">
{{ NumberDiv(pkCouponStore.applicableAmount, 100) }}
</el-form-item>
</el-form>
<el-table stripe v-loading="loading" :data="infoList">
<el-table-column label="子订单号" align="center" prop="orderNo" />
<el-table-column label="码商" align="center" prop="carddealerName" />
<el-table-column :label="'金额'" align="center" prop="amount">
<template slot-scope="scope">
{{ NumberDiv(scope.row.amount, 100) }}
</template>
</el-table-column>
<el-table-column label="时间" align="center" prop="createTime" min-width="180" />
<el-table-column label="状态" align="center" prop="status" min-width="140">
<template slot-scope="scope">
{{ scope.row.orderStatus == 1 ? '待码商付款' : scope.row.orderStatus == 2 ? '审核中' : scope.row.orderStatus == 3 ? '成功'
:
scope.row.orderStatus == 4 ? '驳回' : scope.row.orderStatus == 5 ? '已撤销' : '已关闭'
}}
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" min-width="180">
<template slot-scope="scope">
<el-button size="small" type="text" @click="handleClose(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 1 || scope.row.orderStatus == 2">
关闭
</el-button>
<el-button size="small" type="text" @click="handlePay(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 2">
确认付款
</el-button>
<el-button size="small" type="text" @click="handleReject(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 2">
驳回
</el-button>
</template>
</el-table-column>
</el-table>
<el-col>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</el-col>
<!-- 关闭 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入原因" style="width:300px" type="textarea" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm('form')"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 驳回 -->
<el-dialog :title="title" :visible.sync="openReject" width="500px" append-to-body>
<el-form ref="formReject" :model="form" :rules="rules" label-width="110px">
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入原因" style="width:300px" type="textarea" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm('formReject')"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { payMerchant, common_api } from "@/api/form";
import { listTransferOrder, getTransferOrder, delTransferOrder, addTransferOrder, updateTransferOrder, exportTransferOrder } from "@/api/order/TransferOrder";
export default {
name: "pkCouponScopeRangeStoreList",
props: {
pkCouponId: {
type: String,
default() {
return "";
},
},
pkCouponStore: {
type: Object,
default: {}
}
},
data() {
return {
dateRange: [],
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
infoList: [],
//
title: "",
//
open: false,
openReject: false,
//
queryParams: {
pageNum: 1,
pageSize: 20,
pkCouponId: null,
},
//
form: {
},
detailData: {},
//
rules: {
remarks: [{ required: true, message: "请输入原因", trigger: "blur" }],
},
};
},
created() {
this.pkCouponId && (this.queryParams.pkCouponId = this.pkCouponId);
this.getList();
this.init();
},
methods: {
change() {
this.$forceUpdate()
},
/** 查询 */
getList() {
this.loading = true;
let queryParams = {
orderNo: this.queryParams.pkCouponId,
orderSource: 4
}
payMerchant.selectOrderSub(queryParams)
.then((response) => {
this.infoList = response.rows;
this.total = Number(response.total);
this.loading = false;
});
},
init() {
},
//
cancel() {
this.open = false;
this.openReject = false
this.reset();
},
//
reset() {
this.form = {};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
/** 关闭按钮操作 */
handleClose(row) {
this.reset();
this.open = true;
this.form.orderSubNo = row.orderNo
this.title = "关闭";
},
/** 驳回按钮操作 */
handleReject(row) {
this.reset();
this.openReject = true;
this.form.orderSubNo = row.orderNo
this.title = "驳回";
},
/** 提交按钮 */
submitForm(type) {
this.$refs[type].validate((valid) => {
if (valid) {
const loading = this.$loading({
lock: true,
text: `正在操作`,
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
if (type == 'form') {
payMerchant.closeOrderSub({
orderSubNo: this.form.orderSubNo,
remarks: this.form.remarks
}).then((response) => {
loading.close();
this.open = false;
this.msgSuccess("操作成功");
this.getList();
}).catch(() => {
loading.close();
});
}
if (type == 'formReject') {
payMerchant.orderRejection({
orderSubNo: this.form.orderSubNo,
remarks: this.form.remarks
}).then((response) => {
loading.close();
this.openReject = false;
this.msgSuccess("操作成功");
this.getList();
}).catch(() => {
loading.close();
});
}
}
});
},
/** 确认付款操作 */
handlePay(row) {
const ids = row.orderNo || this.ids;
this.$confirm(
'是否确认付款',
"警告",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(function () {
return payMerchant.confirmPayment({
orderSubNo: ids
});
})
.then(() => {
this.getList();
this.msgSuccess("操作成功");
})
.catch(() => { });
},
},
};
</script>
<style lang="scss" scoped>
.el-radio {
line-height: 2;
}
</style>

176
src/views/order/carddealerOrder/readyOrder.vue

@ -26,7 +26,7 @@
<el-input size="medium" v-model="queryParams.merchantOrderNo" placeholder="请输入商户订单号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker v-model="dateRange" size="small" style="width: 340px" value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
@ -94,11 +94,17 @@
<el-table-column label="创建时间" align="center" prop="createTime" min-width="180" />
<el-table-column label="更新时间" align="center" prop="updateTime" min-width="180" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" min-width="100">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" min-width="150">
<template slot-scope="scope">
<el-button size="small" type="text" @click="switchStatusChange(scope.row, 'status')" style="color: #006eff">
{{ scope.row.canRace == 1 ? '锁定' : '解锁' }}
</el-button>
<el-button size="small" type="text" @click="handleToOther(scope.row)" style="color: #006eff">分配</el-button>
<el-button size="small" type="text" @click="handleOut(scope.row)" style="color: #006eff">关闭</el-button>
<el-button size="small" type="text" @click="handleSuccess(scope.row)" style="color: #006eff">成功</el-button>
<el-button size="small" type="text" @click="handleView(scope.row)" style="color: #006eff">详情</el-button>
<el-button size="small" type="text" @click="handleSonOrder(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 2">子单</el-button>
>子单</el-button>
</template>
</el-table-column>
</el-table>
@ -107,8 +113,8 @@
</pagination>
</div>
<!-- 详情 -->
<el-dialog v-dialogDrag :close-on-click-modal="false" :title="detailTitle" :visible.sync="isShowDetail" width="40%"
<!-- 详情 -->
<el-dialog v-dialogDrag :close-on-click-modal="false" :title="detailTitle" :visible.sync="isShowDetail" width="40%"
append-to-body>
<el-form label-width="142px" :label-suffix="':'">
<div style="display: flex;justify-content: space-around;">
@ -178,20 +184,49 @@
</pkCouponScopeRangeStoreList>
</el-dialog>
<!-- 分配 -->
<el-dialog title="分配" :visible.sync="openOther" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-form-item label="码商" prop="carddealerId">
<el-select v-model="form.carddealerId" placeholder="请选择码商" clearable size="medium" @change="getValue">
<el-option v-for="(item, i) in carddealerCon" :key="i" :label="item.username" :value="item.id"></el-option>
</el-select>
</el-form-item>
<!-- cardId -->
<el-form-item label="付款卡" prop="">
<el-select v-model="form.cardId" placeholder="请选择付款卡" clearable size="medium" @change="change">
<el-option v-for="(item, i) in cardCon" :key="i" :label="item.bankName" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="金额" prop="amount">
<el-input v-model="form.amount" placeholder="请输入金额" style="width:300px" @input="change" />
<div>剩余可分配金额{{ detailInfoList.applicableAmount }}</div>
</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 { listTransferOrder, getTransferOrder, delTransferOrder, addTransferOrder, updateTransferOrder, exportTransferOrder } from "@/api/order/TransferOrder";
import { payOutOrder } from "@/api/form";
import pkCouponScopeRangeStoreList from "./pkCouponScopeRangeStoreList";
import { payOutOrder, common_api } from "@/api/form";
import pkCouponScopeRangeStoreList from "./pkCouponScopeRangeStoreList2";
export default {
name: "TransferOrder",
dicts: ['collection_order_status'],
components: { pkCouponScopeRangeStoreList },
data() {
return {
//
carddealerCon: [],
//
cardCon: [],
pkCouponScopeRangeParkingStoreOpen: false,
pkCouponStore: {},
pkCouponStoreId: '',
@ -221,6 +256,8 @@ export default {
title: "",
//
open: false,
openOther: false,
//
queryParams: {
pageNum: 1,
@ -266,6 +303,15 @@ export default {
form: {},
//
rules: {
amount: [
{ required: true, message: "金额不能为空", trigger: "blur" }
],
carddealerId: [
{ required: true, message: "码商不能为空", trigger: "blur" }
],
cardId: [
{ required: true, message: "付款卡不能为空", trigger: "blur" }
],
orderNo: [
{ required: true, message: "平台订单号不能为空", trigger: "blur" }
],
@ -388,8 +434,90 @@ export default {
},
created() {
this.getList();
this.init()
},
methods: {
/** 成功按钮操作 */
handleSuccess(row) {
const ids = row.orderNo || this.ids;
this.$confirm('是否确认订单编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return payOutOrder.setPayOrderSuccess({
orderNo: ids,
isSuccess: 1
});
}).then(() => {
this.getList();
this.msgSuccess("操作成功");
})
},
/** 关闭按钮操作 */
handleOut(row) {
const ids = row.orderNo || this.ids;
this.$confirm('是否确认关闭订单编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return payOutOrder.setPayOrderSuccess({
orderNo: ids,
isSuccess: 2
});
}).then(() => {
this.getList();
this.msgSuccess("操作成功");
})
},
change() {
this.$forceUpdate()
},
//
getValue(e) {
this.form.cardId = null
payOutOrder.getCarddealerCardList({
carddealerId: e,
channelType: 2,
}).then((response) => {
this.cardCon = response.data;
});
},
init() {
common_api.carddealerChannelAll().then((response) => {
this.carddealerCon = response.data;
});
},
//
handleToOther(row) {
this.reset()
const id = row.orderNo;
getTransferOrder(id).then((response) => {
this.detailInfoList = response.data;
this.detailInfoList.applicableAmount = this.NumberDiv(this.detailInfoList.applicableAmount, 100)
this.form.amount = this.detailInfoList.applicableAmount
this.form.orderNo = this.detailInfoList.orderNo
this.openOther = true;
});
},
//
switchStatusChange(row) {
this.reset()
const id = row.orderNo || this.ids;
getTransferOrder(id).then((response) => {
this.form = response.data;
// row.status == 1 ? this.form.status = 0 : this.form.status = 1
payOutOrder.addUnlock({
orderNo: this.form.orderNo
}).then((res) => {
if (res.code === 200) {
this.$message.success("编辑成功");
this.getList()
}
});
});
},
//
handleSonOrder(row) {
this.pkCouponStore = row;
@ -453,7 +581,8 @@ export default {
//
cancel() {
this.open = false;
this.reset();
this.openOther = false,
this.reset();
},
//
reset() {
@ -469,9 +598,9 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.resetForm("queryForm");
this.handleQuery();
this.dateRange = []
},
//
handleSelectionChange(selection) {
@ -506,21 +635,26 @@ export default {
},
/** 提交按钮 */
submitForm() {
if(!this.form.cardId){
this.$message.error('请选择银行卡')
return;
}
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateTransferOrder(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addTransferOrder(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
let amount;
if (this.form.amount) {
amount = this.NumberMul(this.form.amount, 100)
}
payOutOrder.distributionOrder({
amount: amount,
orderNo: this.form.orderNo,
cardId: this.form.cardId,
carddealerId: this.form.carddealerId,
}).then(response => {
this.msgSuccess("操作成功");
this.openOther = false;
this.getList();
});
}
});
},

31
src/views/order/payOrder/csOrder.vue

@ -104,12 +104,12 @@
</template>
</el-table-column>
<el-table-column label="付款人" align="center" prop="carddealerCardHolder" />
<el-table-column label="付款人" align="center" prop="payerName" />
<el-table-column label="卡号" align="center" prop="carddealerCardNumber" />
<el-table-column label="姓名" align="center" prop="payerName" />
<el-table-column label="姓名" align="center" prop="carddealerCardHolder" />
<el-table-column label="银行" align="center" prop="carddealerBankName" />
<el-table-column label="支行" align="center" prop="carddealerCardOrganization" />
<el-table-column label="通道" align="center" prop="channelName" />
<el-table-column label="通道" align="center" prop="platformChannelName" />
<el-table-column label="码商" align="center" prop="carddealerName" />
<el-table-column :label="'是否超时支付'" align="center" prop="balance">
<template slot-scope="scope">
@ -128,7 +128,7 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button size="small" type="text" @click="handleView(scope.row)" style="color: #006eff">详情</el-button>
<el-button size="small" type="text" @click="handleOver(scope.row)" style="color: #006eff">超时支付</el-button>
<el-button size="small" type="text" @click="handleOver(scope.row)" style="color: #006eff" v-if="scope.row.orderStatus == 3">超时支付</el-button>
<el-button size="small" type="text" @click="handleNotify(scope.row)" style="color: #006eff">通知</el-button>
</template>
</el-table-column>
@ -190,7 +190,7 @@
{{ detailInfoList.carddealerCardOrganization }}
</el-form-item>
<el-form-item label="收款人">
{{ detailInfoList.cardHolder }}
{{ detailInfoList.carddealerCardHolder }}
</el-form-item>
<el-form-item label="通道">
{{ detailInfoList.channelName }}
@ -200,10 +200,10 @@
detailInfoList.notifyStatus == 2 ? '通知进行中' : '超时' }}
</el-form-item>
<el-form-item label="回调方式">
{{ detailInfoList.notifyRemark }}
{{ detailInfoList.isAutoNotify==1?'自动回调':'手动回调' }}
</el-form-item>
<el-form-item label="通道费率">
{{ detailInfoList.merchantRate + '+' + NumberDiv(detailInfoList.merchantSingleFee, 100) }}
{{ detailInfoList.merchantRate + '%+' + NumberDiv(detailInfoList.merchantSingleFee, 100) }}
</el-form-item>
<el-form-item label="操作人">
{{ detailInfoList.notifyRemark }}
@ -227,8 +227,8 @@
<el-input v-model="form.reqAmount" placeholder="" style="width:350px" :disabled="true" />
</el-form-item>
<el-form-item label="支付金额" prop="payAmount">
<el-input v-model="form.payAmount" placeholder="" style="width:350px" @input="change" />
<el-form-item label="支付金额" prop="paymentAmount">
<el-input v-model="form.paymentAmount" placeholder="" style="width:350px" @input="change" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -313,7 +313,7 @@ export default {
form: {},
//
rules: {
payAmount: [
paymentAmount: [
{ required: true, message: "支付金额不能为空", trigger: "blur" }
],
orderNo: [
@ -438,7 +438,7 @@ export default {
getPayOrder(id).then((response) => {
this.form = response.data;
this.form.reqAmount = this.NumberDiv(this.form.reqAmount, 100)
this.form.payAmount = this.NumberDiv(this.form.paymentAmount, 100)
this.form.paymentAmount = this.NumberDiv(this.form.paymentAmount, 100)
this.open = true;
this.title = "超时支付";
});
@ -464,7 +464,7 @@ export default {
channelName: this.queryParams.channelName,
orderStatus: this.queryParams.orderStatus,
carddealerCardHolder: this.queryParams.carddealerCardHolder,
reqAmount: typeof(reqAmount)=='object'?null:!reqAmount?null:parseFloat(reqAmount),
reqAmount: typeof (reqAmount) == 'object' ? null : !reqAmount ? null : parseFloat(reqAmount),
platformChannelId: this.queryParams.platformChannelId,
}
listPayOrder(this.addSESDateRange(queryParams, this.dateRange, 'type')).then(response => {
@ -535,10 +535,11 @@ export default {
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
let payAmount = this.NumberMul(this.form.payAmount, 100)
payToOrder.overtimePayment({
let paymentAmount = this.NumberMul(this.form.paymentAmount, 100)
payToOrder.payOrderOvertimePayment({
orderNo: this.form.orderNo,
payAmount: payAmount,
paymentAmount: paymentAmount,
isTimeoutPay: 1,
}).then(response => {
this.msgSuccess("操作成功");
this.open = false;

38
src/views/order/payOrder/index.vue

@ -104,12 +104,12 @@
</template>
</el-table-column>
<el-table-column label="付款人" align="center" prop="carddealerCardHolder" />
<el-table-column label="付款人" align="center" prop="payerName" />
<el-table-column label="卡号" align="center" prop="carddealerCardNumber" />
<el-table-column label="姓名" align="center" prop="payerName" />
<el-table-column label="姓名" align="center" prop="carddealerCardHolder" />
<el-table-column label="银行" align="center" prop="carddealerBankName" />
<el-table-column label="支行" align="center" prop="carddealerCardOrganization" />
<el-table-column label="通道" align="center" prop="channelName" />
<el-table-column label="通道" align="center" prop="platformChannelName" />
<el-table-column label="码商" align="center" prop="carddealerName" />
<el-table-column :label="'是否超时支付'" align="center" prop="balance">
<template slot-scope="scope">
@ -128,7 +128,8 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button size="small" type="text" @click="handleView(scope.row)" style="color: #006eff">详情</el-button>
<el-button size="small" type="text" @click="handleOver(scope.row)" style="color: #006eff">超时支付</el-button>
<el-button size="small" type="text" @click="handleOver(scope.row)" style="color: #006eff"
v-if="scope.row.orderStatus == 3">超时支付</el-button>
<el-button size="small" type="text" @click="handleNotify(scope.row)" style="color: #006eff">通知</el-button>
</template>
</el-table-column>
@ -190,20 +191,20 @@
{{ detailInfoList.carddealerCardOrganization }}
</el-form-item>
<el-form-item label="收款人">
{{ detailInfoList.cardHolder }}
{{ detailInfoList.carddealerCardHolder }}
</el-form-item>
<el-form-item label="通道">
{{ detailInfoList.channelName }}
{{ detailInfoList.platformChannelName }}
</el-form-item>
<el-form-item label="异步通知状态">
{{ detailInfoList.notifyStatus == 0 ? '未通知' : detailInfoList.notifyStatus == 1 ? '成功' :
detailInfoList.notifyStatus == 2 ? '通知进行中' : '超时' }}
</el-form-item>
<el-form-item label="回调方式">
{{ detailInfoList.notifyRemark }}
{{ detailInfoList.isAutoNotify == 1 ? '自动回调' : '手动回调' }}
</el-form-item>
<el-form-item label="通道费率">
{{ detailInfoList.merchantRate + '+' + NumberDiv(detailInfoList.merchantSingleFee, 100) }}
{{ detailInfoList.merchantRate + '%+' + NumberDiv(detailInfoList.merchantSingleFee, 100) }}
</el-form-item>
<el-form-item label="操作人">
{{ detailInfoList.notifyRemark }}
@ -227,8 +228,8 @@
<el-input v-model="form.reqAmount" placeholder="" style="width:350px" :disabled="true" />
</el-form-item>
<el-form-item label="支付金额" prop="payAmount">
<el-input v-model="form.payAmount" placeholder="" style="width:350px" @input="change" />
<el-form-item label="支付金额" prop="paymentAmount">
<el-input v-model="form.paymentAmount" placeholder="" style="width:350px" @input="change" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -365,7 +366,7 @@ export default {
{ required: true, message: "通道代码(来自platform_channel表channel_code)不能为空", trigger: "blur" }
],
notifyStatus: [
{ required: true, message: "异步通知状态(0未通知,1成功,2通知进行中,3超时)不能为空", trigger: "blur" }
{ required: true, message: "0未通知,1成功,2通知进行中,3超时)不能为空", trigger: "blur" }
],
notifyFailTimes: [
{ required: true, message: "通知失败的次数不能为空", trigger: "blur" }
@ -451,7 +452,7 @@ export default {
channelName: this.queryParams.channelName,
orderStatus: this.queryParams.orderStatus,
carddealerCardHolder: this.queryParams.carddealerCardHolder,
reqAmount: typeof(reqAmount)=='object'?null:!reqAmount?null:parseFloat(reqAmount),
reqAmount: typeof (reqAmount) == 'object' ? null : !reqAmount ? null : parseFloat(reqAmount),
platformChannelId: this.queryParams.platformChannelId,
}
listPayOrder(this.addSESDateRange(queryParams, this.dateRange, 'type')).then(response => {
@ -487,8 +488,8 @@ export default {
this.resetForm("queryForm");
this.handleQuery();
},
change(){
this.$forceUpdate()
change() {
this.$forceUpdate()
},
//
handleSelectionChange(selection) {
@ -508,7 +509,7 @@ export default {
getPayOrder(id).then((response) => {
this.form = response.data;
this.form.reqAmount = this.NumberDiv(this.form.reqAmount, 100)
this.form.payAmount = this.NumberDiv(this.form.paymentAmount, 100)
this.form.paymentAmount = this.NumberDiv(this.form.paymentAmount, 100)
this.open = true;
this.title = "超时支付";
});
@ -536,10 +537,11 @@ export default {
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
let payAmount = this.NumberMul(this.form.payAmount, 100)
payToOrder.overtimePayment({
let paymentAmount = this.NumberMul(this.form.paymentAmount, 100)
payToOrder.payOrderOvertimePayment({
orderNo: this.form.orderNo,
payAmount: payAmount,
paymentAmount: paymentAmount,
isTimeoutPay: 1,
}).then(response => {
this.msgSuccess("操作成功");
this.open = false;

21
src/views/order/payOrder/wwc.vue

@ -200,10 +200,10 @@
detailInfoList.notifyStatus == 2 ? '通知进行中' : '超时' }}
</el-form-item>
<el-form-item label="回调方式">
{{ detailInfoList.notifyRemark }}
{{ detailInfoList.isAutoNotify==1?'自动回调':'手动回调' }}
</el-form-item>
<el-form-item label="通道费率">
{{ detailInfoList.merchantRate + '+' + NumberDiv(detailInfoList.merchantSingleFee, 100) }}
{{ detailInfoList.merchantRate + '%+' + NumberDiv(detailInfoList.merchantSingleFee, 100) }}
</el-form-item>
<el-form-item label="操作人">
{{ detailInfoList.notifyRemark }}
@ -228,8 +228,8 @@
<el-input v-model="form.reqAmount" placeholder="" style="width:350px" :disabled="true" />
</el-form-item>
<el-form-item label="支付金额" prop="payAmount">
<el-input v-model="form.payAmount" placeholder="" style="width:350px" @input="change" />
<el-form-item label="支付金额" prop="paymentAmount">
<el-input v-model="form.paymentAmount" placeholder="" style="width:350px" @input="change" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -314,7 +314,7 @@ export default {
form: {},
//
rules: {
payAmount: [
paymentAmount: [
{ required: true, message: "支付金额不能为空", trigger: "blur" }
],
orderNo: [
@ -439,7 +439,7 @@ export default {
getPayOrder(id).then((response) => {
this.form = response.data;
this.form.reqAmount = this.NumberDiv(this.form.reqAmount, 100)
this.form.payAmount = this.NumberDiv(this.form.paymentAmount, 100)
this.form.paymentAmount = this.NumberDiv(this.form.paymentAmount, 100)
this.open = true;
this.title = "已收款";
});
@ -465,7 +465,7 @@ export default {
channelName: this.queryParams.channelName,
orderStatus: this.queryParams.orderStatus,
carddealerCardHolder: this.queryParams.carddealerCardHolder,
reqAmount: typeof(reqAmount)=='object'?null:!reqAmount?null:parseFloat(reqAmount),
reqAmount: typeof (reqAmount) == 'object' ? null : !reqAmount ? null : parseFloat(reqAmount),
platformChannelId: this.queryParams.platformChannelId,
}
listPayOrder(this.addSESDateRange(queryParams, this.dateRange, 'type')).then(response => {
@ -536,10 +536,11 @@ export default {
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
let payAmount = this.NumberMul(this.form.payAmount, 100)
payToOrder.overtimePayment({
let paymentAmount = this.NumberMul(this.form.paymentAmount, 100)
payToOrder.payOrderOvertimePayment({
orderNo: this.form.orderNo,
payAmount: payAmount,
paymentAmount: paymentAmount,
isTimeoutPay: 2,
}).then(response => {
this.msgSuccess("操作成功");
this.open = false;

198
src/views/payTest/dfTest.vue

@ -27,6 +27,12 @@
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="类型" prop="orderSource">
<el-select v-model="queryParams.orderSource" placeholder="请选择类型" clearable size="medium">
<el-option v-for="(item, i) in orderSourceAll" :key="i" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="orderStatus">
<el-select v-model="queryParams.orderStatus" placeholder="请选择状态" clearable size="medium">
@ -50,7 +56,7 @@
<el-row :gutter="10" class="mb8" style="margin-left: 20px">
<el-col :span="1.5">
<!-- <el-button type="primary" plain icon="" size="medium" @click="handleExport()">导出</el-button> -->
<el-button type="primary" plain icon="" size="medium" @click="handleTest()">拉测试单</el-button>
</el-col>
</el-row>
</div>
@ -64,7 +70,8 @@
<el-table-column :label="'类型'" align="center" prop="securityDepositAmount">
<template slot-scope="scope">
{{ scope.row.orderSource == 1 ? '接口' : scope.row.orderSource == 2 ? '商户提现' : '商户后台付款' }}
{{ scope.row.orderSource == 1 ? '接口' : scope.row.orderSource == 2 ? '商户提现' : scope.row.orderSource
== 3 ? '商户后台付款' : '码商提现' }}
</template>
</el-table-column>
@ -99,7 +106,6 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button size="small" type="text" @click="handleNotify(scope.row)"
style="color: #006eff">通知</el-button>
</template>
@ -112,6 +118,51 @@
<!-- 测试 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="商户名称" prop="merchantId">
<el-select v-model="form.merchantId" placeholder="请选择商户名称" clearable size="medium" @change="getValue">
<el-option v-for="(item, i) in merchantCon" :key="i" :label="item.username"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="通道" prop="channlcode">
<el-select v-model="form.channlcode" placeholder="请选择通道" clearable size="medium" @change="change">
<el-option v-for="(item, i) in channlCon" :key="i" :label="item.platformChannelName"
:value="item.platformChannelCode"></el-option>
</el-select>
</el-form-item>
<el-form-item label="金额" prop="amount">
<el-input v-model="form.amount" placeholder="请输入金额" />
</el-form-item>
<el-form-item label="收款人姓名" prop="accountName">
<el-input v-model="form.accountName" placeholder="请输入收款人姓名" />
</el-form-item>
<el-form-item label="手机号" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号" />
</el-form-item>
<el-form-item label="收款卡号" prop="cardNumber">
<el-input v-model="form.cardNumber" placeholder="请输入收款卡号" />
</el-form-item>
<el-form-item label="银行名称" prop="bankName">
<el-input v-model="form.bankName" placeholder="请输入银行名称" />
</el-form-item>
<el-form-item label="支行名称" prop="branchName">
<el-input v-model="form.branchName" placeholder="请输入支行名称" />
</el-form-item>
<el-form-item label="付款摘要" prop="remark">
<el-input v-model="form.remark" placeholder="请输入付款摘要" type="textarea" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm('form')"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
@ -119,14 +170,50 @@
<script>
import { listPayOrder, getPayOrder, delPayOrder, addPayOrder, updatePayOrder, exportPayOrder } from "@/api/order/payOrder";
import { common_api, payDfOrder, payOutOrder } from "@/api/form";
import { common_api, payDfOrder, payOutOrder, } from "@/api/form";
export default {
name: "PayOrder",
components: {
},
data() {
var checkPhone = (rule, value, callback) => {
let reg = /^1[345789]\d{9}$/
if (!reg.test(value) && value) {
callback(new Error('请输入正确手机号'))
}
if (!value) {
callback(new Error('请输入手机号'))
}
else {
callback()
}
}
return {
//
channlCon: [],
//
merchantCon: [],
//
orderSourceAll: [
{
label: '接口',
value: 1,
},
{
label: '商户提现',
value: 2,
},
{
label: '商户后台付款',
value: 3,
},
{
label: '码商提现',
value: 4,
},
],
dateRange: [],
//
@ -176,6 +263,7 @@ export default {
channelName: null,
orderStatus: null,
mode: null,
orderSource: null,
},
//
isShowDetail: false,
@ -187,6 +275,33 @@ export default {
form: {},
//
rules: {
channlcode: [
{ required: true, message: "通道不能为空", trigger: "blur" }
],
phone: [
{ required: true, validator: checkPhone, message: '请输入正确的手机号', trigger: 'blur' },
],
accountName: [
{ required: true, message: "收款人姓名不能为空", trigger: "blur" }
],
cardNumber: [
{ required: true, message: "收款人卡号不能为空", trigger: "blur" }
],
bankName: [
{ required: true, message: "银行名称不能为空", trigger: "blur" }
],
channelCode: [
{ required: true, message: "通道不能为空", trigger: "blur" }
],
platformChannelId: [
{ required: true, message: "通道不能为空", trigger: "blur" }
],
amount: [
{ required: true, message: "金额不能为空", trigger: "blur" }
],
reqAmount: [
{ required: true, message: "请求金额不能为空", trigger: "blur" }
],
orderNo: [
{ required: true, message: "平台单号不能为空", trigger: "blur" }
],
@ -199,9 +314,6 @@ export default {
merchantNo: [
{ required: true, message: "商户编号不能为空", trigger: "blur" }
],
reqAmount: [
{ required: true, message: "订单请求金额不能为空", trigger: "blur" }
],
increaseAmount: [
{ required: true, message: "账户增加的金额不能为空", trigger: "blur" }
],
@ -229,9 +341,6 @@ export default {
returnUrl: [
{ required: true, message: "同步跳转url不能为空", trigger: "blur" }
],
platformChannelId: [
{ required: true, message: "平台通道id(来自platform_channel表id)不能为空", trigger: "blur" }
],
channelCode: [
{ required: true, message: "通道代码(来自platform_channel表channel_code)不能为空", trigger: "blur" }
],
@ -297,8 +406,32 @@ export default {
},
created() {
this.getList();
this.init();
},
methods: {
change(e) {
// for (var i = 0; i < this.channlCon.length; i++) {
// if (e == this.channlCon[i].platformChannelCode) {
// this.form.platformChannelId = this.channlCon[i].platformChannelId
// }
// }
this.$forceUpdate()
},
//
getValue(e) {
this.form.channlcode = null
common_api.findMerchantChannelInfo({
merchantId: e,
channelType: '2'
}).then(response => {
this.channlCon = response.rows;
});
},
init() {
common_api.getMerchantList().then(response => {
this.merchantCon = response.data;
});
},
getList() {
this.loading = true;
payDfOrder.listInfo(this.addSESDateRange(this.queryParams, this.dateRange)).then(response => {
@ -327,7 +460,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange=[]
this.dateRange = []
this.resetForm("queryForm");
this.handleQuery();
},
@ -337,11 +470,11 @@ export default {
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
/** 测试操作 */
handleTest() {
this.reset();
this.open = true;
this.title = "添加代收订单";
this.title = "拉测试单";
},
/** 修改按钮操作 */
@ -356,21 +489,32 @@ export default {
},
/** 提交按钮 */
submitForm() {
if (!this.form.channlcode) {
this.$message.error('请选择通道');
return
}
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updatePayOrder(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addPayOrder(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
//let reqAmount = this.NumberMul(this.form.reqAmount, 100)
let amount = this.NumberMul(this.form.amount, 100)
payDfOrder.notifyOrder({
merchantId: this.form.merchantId,
channlcode: this.form.channlcode,
phone: this.form.phone,
accountName: this.form.accountName,
//reqAmount: reqAmount,
amount: amount,
cardNumber: this.form.cardNumber,
accountName: this.form.accountName,
branchName: this.form.branchName,
bankName: this.form.bankName,
remark: this.form.remark,
platformChannelId: this.form.platformChannelId,
}).then(response => {
this.msgSuccess("操作成功");
this.open = false;
this.getList();
});
}
});
},

98
src/views/payTest/dsTest.vue

@ -61,7 +61,7 @@
<el-row :gutter="10" class="mb8" style="margin-left: 20px">
<el-col :span="1.5">
<!-- <el-button type="primary" plain icon="" size="medium" @click="handleExport()">导出</el-button> -->
<el-button type="primary" plain icon="" size="medium" @click="handleTest()">拉测试单</el-button>
</el-col>
</el-row>
</div>
@ -91,7 +91,7 @@
</template>
</el-table-column>
<el-table-column label="通道" align="center" prop="channelName" />
<el-table-column label="通道" align="center" prop="platformChannelName" />
<el-table-column label="码商" align="center" prop="carddealerName" />
<el-table-column :label="'状态'" align="center" prop="balance">
@ -170,7 +170,7 @@
{{ detailInfoList.carddealerCardOrganization }}
</el-form-item>
<el-form-item label="收款人">
{{ detailInfoList.cardHolder }}
{{ detailInfoList.carddealerCardHolder }}
</el-form-item>
<el-form-item label="通道">
{{ detailInfoList.channelName }}
@ -180,10 +180,10 @@
detailInfoList.notifyStatus == 2 ? '通知进行中' : '超时' }}
</el-form-item>
<el-form-item label="回调方式">
{{ detailInfoList.notifyRemark }}
{{ detailInfoList.isAutoNotify == 1 ? '自动回调' : '手动回调' }}
</el-form-item>
<el-form-item label="通道费率">
{{ detailInfoList.merchantRate + '+' + NumberDiv(detailInfoList.merchantSingleFee, 100) }}
{{ detailInfoList.merchantRate + '%+' + NumberDiv(detailInfoList.merchantSingleFee, 100) }}
</el-form-item>
<el-form-item label="操作人">
{{ detailInfoList.notifyRemark }}
@ -201,7 +201,33 @@
</el-dialog>
<!-- 测试 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="商户名称" prop="merchantId">
<el-select v-model="form.merchantId" placeholder="请选择商户名称" clearable size="medium" @change="getValue">
<el-option v-for="(item, i) in merchantCon" :key="i" :label="item.username"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="通道" prop="channlcode">
<el-select v-model="form.channlcode" placeholder="请选择通道" clearable size="medium" @change="change">
<el-option v-for="(item, i) in channlCon" :key="i" :label="item.platformChannelName"
:value="item.platformChannelCode"></el-option>
</el-select>
</el-form-item>
<el-form-item label="金额" prop="amount">
<el-input v-model="form.amount" placeholder="请输入金额" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm('form')"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -215,6 +241,10 @@ export default {
},
data() {
return {
//
channlCon: [],
//
merchantCon: [],
dateRange: [],
//
channelAll: [],
@ -276,6 +306,12 @@ export default {
form: {},
//
rules: {
channlcode: [
{ required: true, message: "通道不能为空", trigger: "blur" }
],
amount: [
{ required: true, message: "金额不能为空", trigger: "blur" }
],
orderNo: [
{ required: true, message: "平台单号不能为空", trigger: "blur" }
],
@ -283,7 +319,7 @@ export default {
{ required: true, message: "商户订单号(即下游订单号)不能为空", trigger: "blur" }
],
merchantId: [
{ required: true, message: "商户id不能为空", trigger: "blur" }
{ required: true, message: "商户名称不能为空", trigger: "blur" }
],
merchantNo: [
{ required: true, message: "商户编号不能为空", trigger: "blur" }
@ -389,10 +425,26 @@ export default {
this.init()
},
methods: {
change(e) {
this.$forceUpdate()
},
//
getValue(e) {
this.form.channlcode = null
common_api.findMerchantChannelInfo({
merchantId: e,
channelType: '1'
}).then(response => {
this.channlCon = response.rows;
});
},
init() {
common_api.platformChannelAll().then(response => {
this.channelAll = response.data;
});
common_api.getMerchantList().then(response => {
this.merchantCon = response.data;
});
},
/** 查询代收订单列表 */
getList() {
@ -432,11 +484,11 @@ export default {
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
/** 测试操作 */
handleTest() {
this.reset();
this.open = true;
this.title = "添加代收订单";
this.title = "拉测试单";
},
//
handleView(row) {
@ -459,21 +511,23 @@ export default {
},
/** 提交按钮 */
submitForm() {
if(!this.form.channlcode){
this.$message.error('请选择通道');
return
}
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updatePayOrder(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addPayOrder(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
let amount = this.NumberMul(this.form.amount, 100)
payToOrder.notifyOrder({
merchantId: this.form.merchantId,
amount: amount,
channlcode: this.form.channlcode,
}).then(response => {
this.msgSuccess("操作成功");
this.open = false;
this.getList();
});
}
});
},

1
src/views/platform/platformBankCard/index.vue

@ -296,6 +296,7 @@ export default {
},
//
reset() {
this.imageUrl=null
this.form = {
id: null,
bankName: null,

1
src/views/staticsRecord/cardTimeStatistics.vue

@ -191,6 +191,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange=[]
this.resetForm("queryForm");
this.handleQuery();
},

1
src/views/staticsRecord/dayEndStatistics.vue

@ -252,6 +252,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange=[]
this.resetForm("queryForm");
this.handleQuery();
},

1
src/views/staticsRecord/dayStatistics.vue

@ -229,6 +229,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange=[]
this.resetForm("queryForm");
this.handleQuery();
},

1
src/views/staticsRecord/mechantTimeStatistics.vue

@ -245,6 +245,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange=[]
this.resetForm("queryForm");
this.handleQuery();
},

1
src/views/staticsRecord/merchantCardStat.vue

@ -199,6 +199,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange=[]
this.resetForm("queryForm");
this.handleQuery();
},

BIN
dist.zip → 总后台.zip

Binary file not shown.
Loading…
Cancel
Save