171 lines
5.7 KiB
Vue
171 lines
5.7 KiB
Vue
![]() |
<template>
|
|||
|
<el-dialog
|
|||
|
title="提现详情"
|
|||
|
:visible.sync="dialogVisible"
|
|||
|
width="700px"
|
|||
|
append-to-body
|
|||
|
@open="handleOpen"
|
|||
|
>
|
|||
|
<el-descriptions :column="2" border v-loading="loading" title="申请信息">
|
|||
|
<el-descriptions-item label="提现单号" :span="2">
|
|||
|
{{ detail.no }}
|
|||
|
<dict-tag :options="dict.type.account_type" :value="detail.accountType" style="margin-left: 4px" size="small"/>
|
|||
|
<dict-tag :options="dict.type.withdraw_status" :value="detail.status" style="margin-left: 4px" size="small"/>
|
|||
|
</el-descriptions-item>
|
|||
|
<el-descriptions-item label="申请时间" :span="2">{{ detail.createTime | dv}}</el-descriptions-item>
|
|||
|
<el-descriptions-item label="用户">{{ detail.userName | dv}}</el-descriptions-item>
|
|||
|
<el-descriptions-item label="申请金额">{{ detail.amount | fix2 | dv }} 元</el-descriptions-item>
|
|||
|
<el-descriptions-item label="到账金额">{{ detail.arrivalAmount | fix2 | dv }} 元</el-descriptions-item>
|
|||
|
<el-descriptions-item label="服务费">
|
|||
|
{{ detail.serviceCharge | fix2 | dv }} 元
|
|||
|
<dict-tag :options="dict.type.withdraw_service_type" :value="detail.serviceType" size="mini" style="margin-left: 4px"/>
|
|||
|
<template v-if="detail.servicePoint">({{ detail.servicePoint | fix2 | dv }} %)</template>
|
|||
|
</el-descriptions-item>
|
|||
|
<el-descriptions-item label="账号" v-if="AccountType.QR != detail.accountType">{{ detail.accountNo | dv}}</el-descriptions-item>
|
|||
|
<el-descriptions-item label="姓名">{{ detail.accountName | dv}}</el-descriptions-item>
|
|||
|
<el-descriptions-item label="手机号">{{ detail.accountMobile | dv}}</el-descriptions-item>
|
|||
|
<el-descriptions-item label="身份证号">{{ detail.accountIdCard | dv}}</el-descriptions-item>
|
|||
|
<el-descriptions-item label="银行名称">{{ detail.bankName | dv}}</el-descriptions-item>
|
|||
|
<el-descriptions-item label="卡面名称">{{ detail.bankCardName | dv}}</el-descriptions-item>
|
|||
|
<el-descriptions-item label="二维码" :span="2" v-if="AccountType.QR == detail.accountType">
|
|||
|
<image-preview :src="detail.no" :width="100" :height="100" />
|
|||
|
</el-descriptions-item>
|
|||
|
|
|||
|
</el-descriptions>
|
|||
|
|
|||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px" v-if="canVerify">
|
|||
|
<el-form-item label="审核意见" prop="remark">
|
|||
|
<el-input
|
|||
|
type="textarea"
|
|||
|
v-model="form.remark"
|
|||
|
:rows="3"
|
|||
|
placeholder="请输入审核意见"
|
|||
|
maxlength="200"
|
|||
|
show-word-limit
|
|||
|
/>
|
|||
|
</el-form-item>
|
|||
|
</el-form>
|
|||
|
<el-descriptions :column="2" border v-else title="审核结果">
|
|||
|
<el-descriptions-item label="审核时间">
|
|||
|
{{detail.verifyTime | dv}}
|
|||
|
</el-descriptions-item>
|
|||
|
<el-descriptions-item label="审核人">
|
|||
|
{{detail.verifyUserName | dv}}
|
|||
|
</el-descriptions-item>
|
|||
|
<el-descriptions-item label="审核意见" :span="2">
|
|||
|
{{ detail.verifyRemark | dv}}
|
|||
|
</el-descriptions-item>
|
|||
|
</el-descriptions>
|
|||
|
|
|||
|
<div slot="footer" class="dialog-footer">
|
|||
|
<el-button type="success" plain @click="submitForm(true)" v-if="canVerify" icon="el-icon-check" :loading="submitLoading">通 过</el-button>
|
|||
|
<el-button type="danger" plain @click="submitForm(false)" v-if="canVerify" icon="el-icon-close" :loading="submitLoading">驳 回</el-button>
|
|||
|
<el-button @click="cancel">关 闭</el-button>
|
|||
|
</div>
|
|||
|
</el-dialog>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import { getWithdraw, verifyWithdraw } from "@/api/bst/withdraw";
|
|||
|
import { AccountType, WithdrawStatus } from "@/utils/enums";
|
|||
|
|
|||
|
export default {
|
|||
|
name: 'WithdrawVerifyDialog',
|
|||
|
dicts: ['account_type', 'withdraw_service_type', 'withdraw_status', 'withdraw_verify_result'],
|
|||
|
props: {
|
|||
|
visible: {
|
|||
|
type: Boolean,
|
|||
|
default: false
|
|||
|
},
|
|||
|
id: {
|
|||
|
type: [String, Number],
|
|||
|
default: null
|
|||
|
}
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
loading: false,
|
|||
|
AccountType,
|
|||
|
WithdrawStatus,
|
|||
|
detail: {},
|
|||
|
form: {
|
|||
|
id: null,
|
|||
|
pass: null,
|
|||
|
remark: null
|
|||
|
},
|
|||
|
rules: {
|
|||
|
},
|
|||
|
submitLoading: false,
|
|||
|
}
|
|||
|
},
|
|||
|
computed: {
|
|||
|
canVerify() {
|
|||
|
return WithdrawStatus.canVerify().includes(this.detail.status)
|
|||
|
&& this.checkPermi(['bst:withdraw:verify']);
|
|||
|
},
|
|||
|
dialogVisible: {
|
|||
|
get() {
|
|||
|
return this.visible;
|
|||
|
},
|
|||
|
set(val) {
|
|||
|
this.$emit('update:visible', val);
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
methods: {
|
|||
|
handleOpen() {
|
|||
|
this.reset();
|
|||
|
if (this.id != null) {
|
|||
|
this.getDetail();
|
|||
|
}
|
|||
|
},
|
|||
|
reset() {
|
|||
|
this.detail = {};
|
|||
|
this.form = {
|
|||
|
id: null,
|
|||
|
status: null,
|
|||
|
verifyRemark: null
|
|||
|
};
|
|||
|
this.$nextTick(() => {
|
|||
|
this.$refs.form && this.$refs.form.clearValidate();
|
|||
|
});
|
|||
|
},
|
|||
|
getDetail() {
|
|||
|
this.loading = true;
|
|||
|
getWithdraw(this.id).then(response => {
|
|||
|
this.detail = response.data;
|
|||
|
this.form.id = response.data.id;
|
|||
|
}).finally(() => {
|
|||
|
this.loading = false;
|
|||
|
});
|
|||
|
},
|
|||
|
submitForm(pass) {
|
|||
|
this.$refs.form.validate(valid => {
|
|||
|
if (valid) {
|
|||
|
this.form.pass = pass;
|
|||
|
this.$confirm(`确定要${pass ? '通过' : '驳回'}吗?`).then(() => {
|
|||
|
this.submitLoading = true;
|
|||
|
verifyWithdraw(this.form).then(response => {
|
|||
|
this.$modal.msgSuccess("操作成功");
|
|||
|
this.dialogVisible = false;
|
|||
|
this.$emit('success');
|
|||
|
}).finally(() => {
|
|||
|
this.submitLoading = false;
|
|||
|
});
|
|||
|
});
|
|||
|
}
|
|||
|
});
|
|||
|
},
|
|||
|
cancel() {
|
|||
|
this.dialogVisible = false;
|
|||
|
this.reset();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="scss" scoped>
|
|||
|
.el-descriptions {
|
|||
|
margin-bottom: 20px;
|
|||
|
}
|
|||
|
</style>
|