This commit is contained in:
qsh
2025-05-23 17:08:24 +08:00
parent 3aaa26fdc2
commit 4b030babe2
8 changed files with 187 additions and 42 deletions

View File

@@ -0,0 +1,109 @@
<template>
<div>
<el-form :model="searchForm" inline @submit.prevent>
<el-form-item>
<el-input v-model="searchForm.phone" placeholder="学员手机号" />
</el-form-item>
<el-form-item>
<el-select
v-model="searchForm.distributionId"
placeholder="选择分销人"
clearable
filterable
>
<el-option
v-for="item in distributionOptions"
:key="item.distributionId"
:label="item.name"
:value="item.distributionId"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-date-picker
v-model="searchForm.createDate"
type="daterange"
range-separator="-"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
start-placeholder="充值日期"
end-placeholder="充值日期"
/>
</el-form-item>
<el-form-item>
<el-button @click="searchList">查询</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="tableList" height="calc(100vh - 260px)">
<el-table-column type="index" width="55" align="center" />
<el-table-column label="手机号" align="left" prop="phone" width="140" />
<el-table-column label="会员名" align="left" prop="memberName" min-width="140" />
<el-table-column label="支付金额" align="left" prop="money" min-width="100" />
<el-table-column label="车型" prop="carName" align="left" width="100" />
<el-table-column label="科目" align="left" prop="subjects" width="100" />
<el-table-column label="充值日期" align="left" prop="payTime" min-width="120" />
<el-table-column label="截止日期" align="left" prop="endDate" min-width="120" />
<el-table-column label="分销人" align="left" prop="distributionName" min-width="100" />
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="searchForm.pageNo"
v-model:limit="searchForm.pageSize"
@pagination="getList"
/>
</div>
</template>
<script setup name="Recharge">
import { getRechargeRecords } from '@/api/xjapplet/vip'
import { getResellSimpleList } from '@/api/xjapplet/resell'
const searchForm = ref({
distributionId: undefined,
phone: undefined,
createDate: [],
pageNo: 1,
pageSize: 50
})
const loading = ref(false)
const tableList = ref([])
const total = ref(0)
const distributionOptions = ref([])
onMounted(() => {
changeCarType()
})
function changeCarType() {
getResellSimpleList().then((response) => {
distributionOptions.value = response
})
searchList()
}
function searchList() {
searchForm.value.pageNo = 1
getList()
}
function getList() {
loading.value = true
if (searchForm.value.createDate && searchForm.value.createDate.length > 0) {
searchForm.value.payTimeBegin = searchForm.value.createDate[0] + ' 00:00:00'
searchForm.value.payTimeEnd = searchForm.value.createDate[1] + ' 23:59:59'
} else {
searchForm.value.payTimeBegin = undefined
searchForm.value.payTimeEnd = undefined
}
getRechargeRecords(searchForm.value).then((response) => {
tableList.value = response.list
total.value = response.total
loading.value = false
})
}
</script>
<style lang="scss" scoped></style>

View File

@@ -6,8 +6,8 @@
</el-form-item>
<el-form-item>
<el-radio-group v-model="searchForm.carTypeId" @change="searchList">
<el-radio label="1001">小车</el-radio>
<el-radio label="1002">摩托车</el-radio>
<el-radio :label="1001">小车</el-radio>
<el-radio :label="1002">摩托车</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item>
@@ -68,14 +68,14 @@
</el-form-item>
<el-form-item label="车型" prop="carTypeId">
<el-select v-model="form.carTypeId" style="width: 100%">
<el-option label="小车" value="1001" />
<el-option label="摩托车" value="1002" />
<el-option label="小车" :value="1001" />
<el-option label="摩托车" :value="1002" />
</el-select>
</el-form-item>
<el-form-item label="科目" prop="subjects">
<el-select v-model="form.subjects" placeholder="多选" multiple style="width: 100%">
<el-option label="科一" value="4" />
<el-option label="科四" value="1" />
<el-form-item label="科目" prop="subjectList">
<el-select v-model="form.subjectList" placeholder="多选" multiple style="width: 100%">
<el-option label="科一" value="1" />
<el-option label="科四" value="4" />
</el-select>
</el-form-item>
<el-form-item label="原价" prop="price">
@@ -116,7 +116,7 @@ import { getVipTypeList, addVipType, updateVipType, deleteVipType } from '@/api/
const message = useMessage()
const searchForm = ref({
memberName: undefined,
carTypeId: '1001',
carTypeId: 1001,
pageNo: 1,
pageSize: 50
})
@@ -146,7 +146,7 @@ const showDialog = ref(false)
const form = ref({
memberName: '',
carTypeId: undefined,
subjects: [],
subjectList: [],
price: '',
discount: '',
duration: '',
@@ -156,7 +156,7 @@ const form = ref({
const rules = ref({
memberName: [{ required: true, message: '请输入会员名称', trigger: 'blur' }],
carTypeId: [{ required: true, message: '请输入车型', trigger: 'change' }],
subjects: [{ required: true, message: '请输入科目', trigger: 'blur' }],
subjectList: [{ required: true, message: '请输入科目', trigger: 'blur' }],
price: [{ required: true, message: '请输入价格', trigger: 'blur' }],
discount: [{ required: true, message: '请输入折扣价', trigger: 'blur' }],
duration: [{ required: true, message: '请输入有效期', trigger: 'blur' }]
@@ -165,10 +165,10 @@ const rules = ref({
function addVip() {
showDialog.value = true
form.value.carTypeId = {
form.value = {
memberName: '',
carTypeId: searchForm.value.carTypeId,
subjects: [],
subjectList: [],
price: '',
discount: '',
duration: '',
@@ -178,7 +178,7 @@ function addVip() {
}
function editVip(row) {
form.value = { ...row, subjects: row.subjects.split(','), unit: Number(row.unit) }
form.value = { ...row, unit: Number(row.unit) }
showDialog.value = true
}

View File

@@ -13,6 +13,9 @@
<el-tab-pane label="用户折扣" :name="4" v-if="checkPermi(['xj-applet:vip:user-discount'])">
<UserDiscount v-if="tabIndex == 4" />
</el-tab-pane>
<el-tab-pane label="充值记录" :name="5" v-if="checkPermi(['xj-applet:vip:recharge'])">
<Recharge v-if="tabIndex == 5" />
</el-tab-pane>
</el-tabs>
</div>
</template>
@@ -23,6 +26,7 @@ import UserDiscount from './components/UserDiscount.vue'
import VipDiscount from './components/VipDiscount.vue'
import VipType from './components/VipType.vue'
import VipUser from './components/VipUser.vue'
import Recharge from './components/Recharge.vue'
const tabIndex = ref(1)
</script>