立即支付分成

This commit is contained in:
磷叶 2024-11-22 15:29:05 +08:00
parent db3d5319ed
commit a8b5cbe62d
4 changed files with 71 additions and 34 deletions

View File

@ -53,3 +53,11 @@ export function listBonusByBill(billId) {
}
})
}
// 支付分成
export function payBonus(id) {
return request({
url: `/ss/bonus/${id}/pay`,
method: 'put'
})
}

View File

@ -224,3 +224,14 @@ export const DeviceOnlineStatus = {
ONLINE: "1", // 在线
OFFLINE: "0", // 离线
}
export const BonusStatus = {
UN_DIVIDEND: "1", // 未出账
WAIT_DIVIDE: "2", // 待分成
DIVIDEND: "3", // 已分成
// 允许支付的状态
canPay() {
return [this.WAIT_DIVIDE]
}
}

View File

@ -106,24 +106,18 @@
</template>
</el-table-column>
</template>
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['ss:bonus:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['ss:bonus:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-wallet"
@click="handlePay(scope.row)"
v-hasPermi="['ss:bonus:pay']"
v-show="BonusStatus.canPay().includes(scope.row.status)"
>立即支付</el-button>
</template>
</el-table-column>
</el-table>
<pagination
@ -195,9 +189,9 @@
</template>
<script>
import { listBonus, getBonus, delBonus, addBonus, updateBonus } from "@/api/ss/bonus";
import { listBonus, getBonus, delBonus, addBonus, updateBonus, payBonus } from '@/api/ss/bonus'
import { $showColumns, $view } from '@/utils/mixins'
import { BonusArrivalType, SmUserType, views } from '@/utils/constants'
import { BonusArrivalType, BonusStatus, SmUserType, views } from '@/utils/constants'
import UserLink from '@/components/Business/SmUser/UserLink.vue'
//
@ -208,14 +202,6 @@ const defaultSort = {
export default {
name: "Bonus",
computed: {
BonusArrivalType() {
return BonusArrivalType
},
SmUserType() {
return SmUserType
}
},
components: { UserLink },
mixins: [$showColumns, $view],
dicts: ['bonus_status', 'bonus_arrival_type'],
@ -231,7 +217,7 @@ export default {
return {
//
columns: [
{key: 'id', visible: true, label: '分成编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
{key: 'id', visible: false, label: '分成编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
{key: 'billNo', visible: true, label: '订单编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: "180"},
{key: 'status', visible: true, label: '状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'arrivalName', visible: true, label: '收款方', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
@ -241,9 +227,9 @@ export default {
{key: 'waitAmount', visible: true, label: '待分金额', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'payedAmount', visible: true, label: '已分金额', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'refundAmount', visible: true, label: '退款金额', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'prePayTime', visible: true, label: '预计分成时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "180"},
{key: 'payTime', visible: true, label: '实际分成时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "180"},
{key: 'createTime', visible: true, label: '创建时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "180"},
{key: 'prePayTime', visible: true, label: '预计分成', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
{key: 'payTime', visible: true, label: '实际分成', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
{key: 'createTime', visible: true, label: '创建时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
],
//
orderSorts: ['ascending', 'descending', null],
@ -319,6 +305,17 @@ export default {
}
};
},
computed: {
BonusStatus() {
return BonusStatus
},
BonusArrivalType() {
return BonusArrivalType
},
SmUserType() {
return SmUserType
}
},
created() {
this.queryParams = {
...this.queryParams,
@ -336,6 +333,20 @@ export default {
this.getList();
},
methods: {
handlePay(row) {
this.$confirm(`是否确认支付【订单编号】${row.billNo}【收款方】${row.arrivalName}的分成?`, {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
payBonus(row.id).then(res => {
if (res.code === 200) {
this.$message.success("支付分成成功");
this.getList();
}
})
})
},
/** 当排序按钮被点击时触发 **/
onSortChange(column) {
if (column.order == null) {

View File

@ -114,6 +114,9 @@
<el-tab-pane label="收入订单" lazy>
<recharge :query="{mchId: detail.userId}" :view="views.mch"/>
</el-tab-pane>
<el-tab-pane label="分成记录" lazy>
<bonus :query="{arrivalId: detail.userId, arrivalTypes: BonusArrivalType.userList()}" :view="views.user"/>
</el-tab-pane>
<el-tab-pane label="提现列表" lazy>
<withdraw :query="{userId: detail.userId}" :view="views.user"/>
</el-tab-pane>
@ -164,17 +167,21 @@ import BooleanTag from '@/components/BooleanTag/index.vue'
import Withdraw from '@/views/system/withdraw/index.vue'
import RealName from '@/views/ss/realName/index.vue'
import UserConfigDialog from '@/views/system/smUser/components/UserConfigDialog.vue'
import { SmUserType } from '@/utils/constants'
import { BonusArrivalType, SmUserType } from '@/utils/constants'
import ReceiveBill from '@/views/ss/receiveBill/index.vue'
import Risk from '@/views/ss/risk/index.vue'
import UserDailyRechargeReport from '@/views/system/smUser/components/UserDailyRechargeReport.vue'
import Bonus from '@/views/ss/bonus/index.vue'
export default {
name: 'User/:userId',
mixins: [$view, $serviceType],
components: { UserDailyRechargeReport, Risk, ReceiveBill, UserConfigDialog, RealName, Withdraw, BooleanTag, Recharge, Device, Suit, Account, RecordBalance, Store, Access, UserRechargeReport, UserAccount, UserDevice, LineChart},
components: { Bonus, UserDailyRechargeReport, Risk, ReceiveBill, UserConfigDialog, RealName, Withdraw, BooleanTag, Recharge, Device, Suit, Account, RecordBalance, Store, Access, UserRechargeReport, UserAccount, UserDevice, LineChart},
dicts: ['sm_user_type', 'service_type', 'withdraw_service_type'],
computed: {
BonusArrivalType() {
return BonusArrivalType
},
SmUserType() {
return SmUserType
},