Files
wangxiaowei 6a4a8ecb42 完善功能
2026-04-03 15:02:22 +08:00

150 lines
6.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline>
<el-form-item label="订单编号" prop="order_sn">
<el-input class="w-[280px]" v-model="queryParams.order_sn" clearable placeholder="请输入订单编号" />
</el-form-item>
<el-form-item class="w-[280px]" label="提现类型" prop="tx_type">
<el-select v-model="queryParams.tx_type" clearable placeholder="请选择">
<el-option label="全部" value=""></el-option>
<el-option label="本人提现" value="1"></el-option>
<el-option label="茶艺师账户提现" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
<!-- <el-button v-perms="['broker_reflect/add']" type="primary" @click="handleAdd">
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增
</el-button>
<el-button v-perms="['broker_reflect/delete']" :disabled="!selectData.length" @click="handleDelete(selectData)">
删除
</el-button> -->
<div class="mt-4">
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="订单编号" prop="order_sn" show-overflow-tooltip />
<el-table-column label="用户信息" prop="broker_admin" show-overflow-tooltip>
<template #default="{ row }">
<div>姓名{{ row.broker_admin.name }}</div>
<div>联系方式{{ row.broker_admin.mobile || row.broker_admin.account }}</div>
</template>
</el-table-column>
<el-table-column label="银行卡" prop="bank">
<template #default="{ row }">
<div>卡号{{ row.bank.bank_card }}</div>
<div>开户行{{ row.bank.bank_name }} {{ row.bank_open_name }}</div>
<div>绑定手机号{{ row.bank.mobile }}</div>
</template>
</el-table-column>
<el-table-column label="提现金额" prop="amount" show-overflow-tooltip />
<el-table-column label="打款证明" prop="voucher">
<template #default="{ row }">
<el-image v-if="row.voucher" style="width: 100px; height: 100px" :src="row.voucher"
:preview-src-list="[row.voucher]" preview-teleported></el-image>
<div v-else></div>
</template>
</el-table-column>
<el-table-column label="提现类型" prop="tx_type">
<template #default="{ row }">
{{ row.tx_type == 1 ? '本人提现' : '茶艺师账户提现' }}
</template>
</el-table-column>
<el-table-column label="创建时间" prop="dtime" show-overflow-tooltip />
<el-table-column label="提现状态" prop="status">
<template #default="{ row }">
<el-tag v-if="row.status == 0" type="info">待审核</el-tag>
<el-tag v-else-if="row.status == 1" type="success">审核通过</el-tag>
<el-tag v-else-if="row.status == 2" type="danger">审核拒绝</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<el-button v-perms="['broker_reflect/edit']" type="primary" link @click="handleEdit(row)">
编辑
</el-button>
<!-- <el-button v-perms="['broker_reflect/delete']" type="danger" link
@click="handleDelete(row.dtime)">
删除
</el-button> -->
</template>
</el-table-column>
</el-table>
</div>
<div class="flex mt-4 justify-end">
<pagination v-model="pager" @change="getLists" />
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
</div>
</template>
<script lang="ts" setup name="brokerReflectLists">
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiBrokerReflectLists, apiBrokerReflectDelete } from '@/api/broker_reflect'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
// 是否显示编辑框
const showEdit = ref(false)
// 查询条件
const queryParams = reactive({
order_sn: '',
tx_type: ''
})
// 选中数据
const selectData = ref<any[]>([])
// 表格选择后回调事件
const handleSelectionChange = (val: any[]) => {
selectData.value = val.map(({ dtime }) => dtime)
}
// 获取字典数据
const { dictData } = useDictData('')
// 分页相关
const { pager, getLists, resetParams, resetPage } = usePaging({
fetchFun: apiBrokerReflectLists,
params: queryParams
})
// 添加
const handleAdd = async () => {
showEdit.value = true
await nextTick()
editRef.value?.open('add')
}
// 编辑
const handleEdit = async (data: any) => {
showEdit.value = true
await nextTick()
editRef.value?.open('edit')
editRef.value?.setFormData(data)
}
// 删除
const handleDelete = async (dtime: number | any[]) => {
await feedback.confirm('确定要删除?')
await apiBrokerReflectDelete({ dtime })
getLists()
}
getLists()
</script>