This commit is contained in:
gyq 2025-11-05 09:20:43 +08:00
parent 421fad369c
commit c2b84eae75
7 changed files with 97 additions and 33 deletions

View File

@ -1,8 +1,8 @@
<!-- 下拉选择用户可远程搜索 -->
<template>
<el-select :model-value="modelValue" placeholder="用户昵称/用户ID/用户手机" filterable remote reserve-keyword
<el-select :model-value="modelValue" :placeholder="placeholder" filterable remote reserve-keyword
:remote-method="remoteMethod" :loading="loading" @change="$emit('update:modelValue', $event)">
<el-option v-for="item in options" :key="item.id" :label="item.nickName" :value="item.id" />
<el-option v-for="item in options" :key="item.id" :label="`${item.nickName} / ${item.phone}`" :value="item.id" />
</el-select>
</template>
@ -21,6 +21,13 @@ const userId = defineModel('modelValue', {
required: false
})
const props = defineProps({
placeholder: {
type: String,
default: '用户昵称/用户ID/用户手机'
}
})
//
const remoteMethod = _.debounce(async function (query) {
try {

View File

@ -67,6 +67,7 @@
</template>
<script setup>
import dayjs from 'dayjs';
import { ref, reactive, onMounted } from 'vue'
import { distributionOpenFlow } from '@/api/coupon'
import selectUser from '../../components/selectUser.vue';
@ -89,7 +90,7 @@ function searchHandle() {
function resetHandle() {
queryForm.value.key = ''
queryForm.value.startTime = ''
queryForm.value.startTime = ''
queryForm.value.endTime = ''
times.value = []
searchHandle()
}
@ -105,8 +106,13 @@ const tableData = reactive({
//
const times = ref([])
function selectTimeChange(e) {
queryForm.value.startTime = dayjs(e[0]).format('YYYY-MM-DD 00:00:00')
queryForm.value.endTime = dayjs(e[1]).format('YYYY-MM-DD 23:59:59')
if (e !== null) {
queryForm.value.startTime = dayjs(e[0]).format('YYYY-MM-DD 00:00:00')
queryForm.value.endTime = dayjs(e[1]).format('YYYY-MM-DD 23:59:59')
} else {
queryForm.value.startTime = ''
queryForm.value.endTime = ''
}
}
//
@ -131,6 +137,9 @@ async function getTableData() {
})
tableData.list = res.records
tableData.total = res.totalRow
totalCount.value = res.totalCount
totalAmount.value = res.totalAmount
} catch (error) {
console.log(error);
}

View File

@ -42,7 +42,7 @@
</el-table-column>
<el-table-column label="分销员" prop="distributionShops">
<template #default="scope">
<span v-if="scope.row.distributionShops.length > 0" style="color: red;"></span>
<span v-if="isDistribtion(scope.row.distributionShops) == 1" style="color: red;"></span>
<span v-else></span>
</template>
</el-table-column>
@ -54,7 +54,7 @@
<el-table-column label="注册时间" prop="createTime" width="200"></el-table-column>
<el-table-column label="操作" width="100" fixed="right">
<template #default="scope">
<el-button type="primary" :disabled="!!scope.row.distributionShops.length"
<el-button type="primary" :disabled="isDistribtion(scope.row.distributionShops) == 1"
@click="selectHandle(scope.row)">选择</el-button>
</template>
</el-table-column>
@ -121,6 +121,12 @@ function submitHandle() {
}
//
function isDistribtion(str) {
let s = str.split('_')
return s[1]
}
const selectUser = ref([])
function tabSelect(e) {
selectUser.value = e

View File

@ -48,12 +48,19 @@
<el-form-item>
<selectUser v-model="querForm.userId" />
</el-form-item>
<el-form-item v-if="tabIndex == 1">
<el-form-item v-if="tabIndex == 0">
<el-select v-model="querForm.distributionLevelId" placeholder="请选择等级" style="width: 200px;">
<el-option v-for="item in distributionLevelIdList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item v-if="tabIndex == 1">
<el-select v-model="querForm.status" placeholder="请选择状态" style="width: 200px;">
<el-option label="已入账" value="success"></el-option>
<el-option label="待入账" value="pending"></el-option>
<el-option label="已退款" value="refund"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="searchHandle" :loading="tableData.loading" icon="Search">搜索</el-button>
<el-button @click="resetHandle" :loading="tableData.loading" icon="Refresh">重置</el-button>
@ -73,8 +80,16 @@
</template>
</el-table-column>
<el-table-column label="等级" prop="levelName"></el-table-column>
<el-table-column label="总消费金额(元)" prop="oneIncome"></el-table-column>
<el-table-column label="累计收益(元)" prop="totalIncome"></el-table-column>
<!-- <el-table-column label="总消费金额(元)" prop="oneIncome">
<template #default="scope">
{{ multiplyAndFormat(scope.row.oneIncome || 0) }}
</template>
</el-table-column> -->
<el-table-column label="累计收益(元)" prop="totalIncome">
<template #default="scope">
{{ multiplyAndFormat(scope.row.totalIncome || 0) }}
</template>
</el-table-column>
<el-table-column label="邀请时间" prop="inviteTime"></el-table-column>
</el-table>
<!-- 收入明细 -->
@ -95,6 +110,9 @@
<el-tag disable-transitions type="info" v-if="scope.row.status == 'pending'">
待入账
</el-tag>
<el-tag disable-transitions type="danger" v-if="scope.row.status == 'refund'">
已退款
</el-tag>
</template>
</el-table-column>
<el-table-column label="关联订单号" prop="orderNo"></el-table-column>
@ -127,17 +145,18 @@ const visible = ref(false)
const rowInfo = ref('')
const querForm = ref({
const resetQuerForm = ref({
status: '',
userId: '',
distributionLevelId: ''
})
const querForm = ref({ ...resetQuerForm.value })
const distributionLevelIdList = ref([])
function resetHandle() {
tabIndex.value = 0
querForm.value.userId = ''
querForm.value.distributionLevelId = ''
querForm.value = { ...resetQuerForm.value }
searchHandle()
}
@ -156,6 +175,11 @@ const statusList = ref([
value: 'success',
label: '已入账',
type: 'success'
},
{
value: 'refund',
label: '已退款',
type: 'danger'
}
])
@ -195,14 +219,16 @@ async function getTableData() {
id: rowInfo.value.id,
page: tableData.page,
size: tableData.size,
shopUserId: querForm.value.userId
shopUserId: querForm.value.userId,
distributionLevelId: querForm.value.distributionLevelId
})
} else {
res = await distributionFlowGet({
id: rowInfo.value.id,
parentId: rowInfo.value.id,
shopUserId: querForm.value.userId,
distributionLevelId: querForm.value.distributionLevelId
distributionLevelId: querForm.value.distributionLevelId,
status: querForm.value.status
})
}

View File

@ -40,7 +40,15 @@
@change="selectTimeChange"></el-date-picker>
</el-form-item>
<el-form-item>
<selectUser v-model="queryForm.key" />
<!-- <selectUser v-model="queryForm.key" /> -->
<el-select v-model="queryForm.status" placeholder="请选择状态" style="width: 200px;">
<el-option label="已入账" value="success"></el-option>
<el-option label="待入账" value="pending"></el-option>
<el-option label="已退款" value="refund"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<selectUser v-model="queryForm.id" placeholder="分销员昵称/手机号" />
</el-form-item>
<el-form-item>
<div class="between">
@ -84,11 +92,13 @@
<template #default="scope">
<el-tag disable-transitions type="success" effect="dark" v-if="scope.row.status == 'success'">已入账</el-tag>
<el-tag disable-transitions type="info" effect="dark" v-if="scope.row.status == 'pending'">待入账</el-tag>
<el-tag disable-transitions type="danger" effect="dark" v-if="scope.row.status == 'refund'">已退款</el-tag>
</template>
</el-table-column>
<el-table-column label="关联订单号" prop="orderNo" min-width="200"></el-table-column>
<el-table-column label="总收益(元)" prop="rewardAmount" min-width="120">
<template #default="scope">
<span v-if="scope.row.status == 'refund'">-</span>
{{ multiplyAndFormat(scope.row.rewardAmount || 0) }}
</template>
</el-table-column>
@ -123,11 +133,14 @@ const infoObj = ref({
successAmount: 0
})
const queryForm = ref({
const resetQuerForm = ref({
id: '',
key: '',
startTime: '',
endTime: ''
endTime: '',
status: ''
})
const queryForm = ref({ ...resetQuerForm.value })
function searchHandle() {
tableData.page = 1;
@ -135,11 +148,8 @@ function searchHandle() {
}
function resetHandle() {
queryForm.value.key = ''
queryForm.value.startTime = ''
queryForm.value.startTime = ''
queryForm.value = { ...resetQuerForm.value }
times.value = []
searchHandle()
}
@ -154,8 +164,13 @@ const tableData = reactive({
//
const times = ref([])
function selectTimeChange(e) {
queryForm.value.startTime = dayjs(e[0]).format('YYYY-MM-DD 00:00:00')
queryForm.value.endTime = dayjs(e[1]).format('YYYY-MM-DD 23:59:59')
if (e) {
queryForm.value.startTime = dayjs(e[0]).format('YYYY-MM-DD 00:00:00')
queryForm.value.endTime = dayjs(e[1]).format('YYYY-MM-DD 23:59:59')
} else {
queryForm.value.startTime = ''
queryForm.value.endTime = ''
}
}
//
@ -176,6 +191,7 @@ async function getTableData() {
const res = await distributionFlowGet({
page: tableData.page,
size: tableData.size,
...queryForm.value
})
tableData.list = res.records
tableData.total = res.totalRow

View File

@ -3,7 +3,7 @@
<div>
<el-form inline>
<el-form-item>
<selectUser v-model="queryForm.user" />
<selectUser v-model="queryForm.id" />
</el-form-item>
<el-form-item>
<el-date-picker style="width: 300px" v-model="times" type="daterange" range-separator=""
@ -87,11 +87,12 @@ const addUserDialogRef = ref(null)
const editorUserDialogRef = ref(null)
const distributionUserDetailRef = ref(null)
const queryForm = ref({
user: '',
const resetQuerForm = ref({
id: '',
startTime: '',
endTime: ''
})
const queryForm = ref({ ...resetQuerForm.value })
function searchHandle() {
tableData.page = 1;
@ -99,11 +100,8 @@ function searchHandle() {
}
function resetHandle() {
queryForm.value.user = ''
queryForm.value.startTime = ''
queryForm.value.startTime = ''
queryForm.value = { ...resetQuerForm.value }
times.value = []
searchHandle()
}

View File

@ -1,3 +1,4 @@
<!-- 变动记录弹窗 -->
<template>
<el-dialog title="变动记录" width="1000px" v-model="visible">
<div class="row">
@ -8,7 +9,7 @@
</el-select>
</el-form-item>
<el-form-item>
<el-input v-model="queryForm.key" placeholder="请输入用户ID/昵称" style="width: 200px;"></el-input>
<selectUser v-model="queryForm.key" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="searchHandle" icon="Search" :loading="tableData.loading">搜索</el-button>
@ -64,6 +65,7 @@
import { ref } from 'vue'
import { multiplyAndFormat } from '@/utils'
import { distributionFlow } from '@/api/coupon'
import selectUser from '../../components/selectUser.vue'
const visible = ref(false)