Browse Source

fix:平台 谁改了我的平台

zhangyong/feature-20250815160302-金币优化
lihui 2 months ago
parent
commit
c0a3d0ab3c
  1. 47
      src/views/consume/gold/coinConsumeDetail.vue
  2. 267
      src/views/usergold/gold/clientCountDetail.vue

47
src/views/consume/gold/coinConsumeDetail.vue

@ -90,7 +90,33 @@ const sortField = ref('')
const sortOrder = ref('') const sortOrder = ref('')
// //
const consumePlatform = ref([]);
const consumePlatform = [
{
value: '金币系统',
label: '金币系统'
},
{
value: 'HomilyChart',
label: 'HomilyChart'
},
{
value: 'HomilyLink',
label: 'HomilyLink'
},
{
value: 'ERP',
label: 'ERP'
},
{
value: '其他',
label: '其他'
},
{
value: '初始化金币',
label: '初始化金币'
},
]
// //
const tableDataTotal = ref({}) const tableDataTotal = ref({})
@ -132,21 +158,6 @@ const getAdminData = async function () {
console.log('请求失败', error) console.log('请求失败', error)
} }
} }
//
const getPlatformData = async function () {
try {
const result = await request({
url: '/general/platform',
})
if (result.code === 200){
consumePlatform.value = result.data
console.log('平台信息', consumePlatform.value)
console.log('请求成功', result)
}
} catch (error) {
console.log('请求失败', error)
}
}
const ConsumeSelectBy = async function (val) { const ConsumeSelectBy = async function (val) {
@ -404,7 +415,7 @@ onMounted(async function () {
// getActivity(); // getActivity();
await getMarket() await getMarket()
await getGoods() await getGoods()
await getPlatformData()
// await getPlatformData()
}) })
@ -577,7 +588,7 @@ const getMarket = async function () {
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">消耗平台</el-text> <el-text class="mx-1" size="large">消耗平台</el-text>
<el-select v-model="consumeUser.payPlatform" placeholder="请选择消耗平台" style="width: 180px" clearable> <el-select v-model="consumeUser.payPlatform" placeholder="请选择消耗平台" style="width: 180px" clearable>
<el-option v-for="item in consumePlatform" :key="item.id" :label="item.platform" :value="item.platform" />
<el-option v-for="item in consumePlatform" :key="item.id" :label="item.label" :value="item.value" />
</el-select> </el-select>
</div> </div>
</el-col> </el-col>

267
src/views/usergold/gold/clientCountDetail.vue

@ -60,10 +60,13 @@ const getPlatform = async () => {
const result = await API({ const result = await API({
url: '/general/platform', url: '/general/platform',
method: 'post', method: 'post',
data: {}//
}) })
platform.value = result.data
if (Array.isArray(result.data)) {
platform.value = result.data.map(item => ({value: item, label: item}));
} else {
console.error('平台信息格式错误', result)
ElMessage.error('平台信息格式错误,请联系管理员')
}
} catch (error) { } catch (error) {
console.error('获取平台信息失败:', error); console.error('获取平台信息失败:', error);
@ -166,7 +169,7 @@ const get = async function (val) {
const result = await API({ const result = await API({
url: '/goldDetail/getGoldDetail', url: '/goldDetail/getGoldDetail',
method: 'post', method: 'post',
data: {...getObj.value, goldDetail: {...goldDetail.value, flag: showEmployeeData.value? 0 : 1}}
data: {...getObj.value, goldDetail: {...goldDetail.value, flag: showEmployeeData.value ? 0 : 1}}
}) })
console.log('响应数据', result) console.log('响应数据', result)
tableData.value = result.data.list tableData.value = result.data.list
@ -187,7 +190,7 @@ const get = async function (val) {
url: '/goldDetail/getTotal', url: '/goldDetail/getTotal',
method: 'post', method: 'post',
data: { data: {
goldDetail: {...goldDetail.value, flag: showEmployeeData.value? 0 : 1},
goldDetail: {...goldDetail.value, flag: showEmployeeData.value ? 0 : 1},
/* jwcode: goldDetail.value.jwcode || '', /* jwcode: goldDetail.value.jwcode || '',
payPlatform: goldDetail.value.payPlatform || '', payPlatform: goldDetail.value.payPlatform || '',
type: goldDetail.value.type || '', type: goldDetail.value.type || '',
@ -490,142 +493,142 @@ const format3 = (num) => {
</script> </script>
<template> <template>
<div> <div>
<el-card style="margin-bottom: 20px;margin-top: 10px;">
<el-row style="margin-bottom: 10px">
<el-col :span="5">
<div class="head-card-element">
<el-text class="mx-1" size="large">精网号</el-text>
<el-input v-model="goldDetail.jwcode" style="width: 150px" placeholder="请输入精网号" clearable/>
</div>
</el-col>
<el-col :span="5">
<div class="head-card-element">
<el-text class="mx-1" size="large">平台信息</el-text>
<el-select v-model="goldDetail.payPlatform" placeholder="请选择平台信息" style="width: 160px" clearable
:loading="isLoadingPlatform">
<el-option v-for="item in platform" :key="item.id" :label="item.platform" :value="item.platform"/>
</el-select>
</div>
</el-col>
<el-col :span="5">
<div class="head-card-element">
<el-text class="mx-1" size="large">数量更新类型</el-text>
<el-select v-model="goldDetail.type" placeholder="请选择更新类型" style="width: 160px" clearable>
<el-option v-for="item in type" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</div>
</el-col>
<el-col :span="5">
<div class="head-card-element">
<el-text class="mx-1" size="large">所属地区</el-text>
<el-cascader
v-model="selectedMarketPath"
:options="markets"
placeholder="请选择所属地区"
clearable
style="width:180px"
@change="handleMarketChange"
/>
</div>
</el-col>
<el-col :span="3">
<div class="head-card-element">
<el-checkbox v-model="showEmployeeData" @change="search()">员工数据</el-checkbox>
</div>
</el-col>
</el-row>
<el-card style="margin-bottom: 20px;margin-top: 10px;">
<el-row style="margin-bottom: 10px">
<el-col :span="5">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">更新时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange"
:default-time="defaultTime"/>
<el-button @click="getToday()" style="margin-left: 10px"
:type="activeTimeRange === 'today' ? 'primary' : ''">
</el-button>
<el-button @click="getYesterday()" style="margin-left: 10px"
:type="activeTimeRange === 'yesterday' ? 'primary' : ''">
</el-button>
<el-button @click="get7Days()" style="margin-left: 10px"
:type="activeTimeRange === '7days' ? 'primary' : ''"> 近7天
</el-button>
<el-button type="success" @click="reset()">重置</el-button>
<el-button type="primary" @click="search()">查询</el-button>
<el-button type="primary" @click="exportExcel">导出Excel表格</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
<el-text class="mx-1" size="large">精网号</el-text>
<el-input v-model="goldDetail.jwcode" style="width: 150px" placeholder="请输入精网号" clearable/>
</div> </div>
</el-card>
<el-card>
<div>
金币净变化{{ format3(totalGoldTotal || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ format3(totalPermanentGold || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
免费金币{{ format3(totalFreeGold || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
任务金币{{ format3(totalTaskGold || 0) }}&nbsp;&nbsp;
<a style="color:#b1b1b1;">(当前合计仅显示筛选范围内的金币净变化充值总额 - 消费总额 + 退款总额)</a>
</el-col>
<el-col :span="5">
<div class="head-card-element">
<el-text class="mx-1" size="large">平台信息</el-text>
<el-select v-model="goldDetail.payPlatform" placeholder="请选择平台信息" style="width: 160px" clearable
:loading="isLoadingPlatform">
<el-option v-for="item in platform" :key="item.id" :label="item.label" :value="item.value"/>
</el-select>
</div> </div>
<div style="height: 584px; overflow-y: auto">
<el-table :data="tableData" style="width: 100%" @sort-change="handleSortChange" height="584px">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope">
</el-col>
<el-col :span="5">
<div class="head-card-element">
<el-text class="mx-1" size="large">数量更新类型</el-text>
<el-select v-model="goldDetail.type" placeholder="请选择更新类型" style="width: 160px" clearable>
<el-option v-for="item in type" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</div>
</el-col>
<el-col :span="5">
<div class="head-card-element">
<el-text class="mx-1" size="large">所属地区</el-text>
<el-cascader
v-model="selectedMarketPath"
:options="markets"
placeholder="请选择所属地区"
clearable
style="width:180px"
@change="handleMarketChange"
/>
</div>
</el-col>
<el-col :span="3">
<div class="head-card-element">
<el-checkbox v-model="showEmployeeData" @change="search()">员工数据</el-checkbox>
</div>
</el-col>
</el-row>
<div class="head-card-element">
<el-text class="mx-1" size="large">更新时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange"
:default-time="defaultTime"/>
<el-button @click="getToday()" style="margin-left: 10px"
:type="activeTimeRange === 'today' ? 'primary' : ''">
</el-button>
<el-button @click="getYesterday()" style="margin-left: 10px"
:type="activeTimeRange === 'yesterday' ? 'primary' : ''">
</el-button>
<el-button @click="get7Days()" style="margin-left: 10px"
:type="activeTimeRange === '7days' ? 'primary' : ''"> 近7天
</el-button>
<el-button type="success" @click="reset()">重置</el-button>
<el-button type="primary" @click="search()">查询</el-button>
<el-button type="primary" @click="exportExcel">导出Excel表格</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
</div>
</el-card>
<el-card>
<div>
金币净变化{{ format3(totalGoldTotal || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ format3(totalPermanentGold || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
免费金币{{ format3(totalFreeGold || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
任务金币{{ format3(totalTaskGold || 0) }}&nbsp;&nbsp;
<a style="color:#b1b1b1;">(当前合计仅显示筛选范围内的金币净变化充值总额 - 消费总额 + 退款总额)</a>
</div>
<div style="height: 584px; overflow-y: auto">
<el-table :data="tableData" style="width: 100%" @sort-change="handleSortChange" height="584px">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope">
<span>{{ <span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span> }}</span>
</template>
</el-table-column>
<el-table-column fixed="left" prop="name" label="姓名" width="150" show-overflow-tooltip />
<el-table-column fixed="left" prop="jwcode" label="精网号" width="120"/>
<el-table-column prop="market" label="所属地区" width="120"/>
<el-table-column prop="payPlatform" label="平台信息" width="140" />
<el-table-column prop="type" label="更新类型" width="110">
<template #default="scope">
<span v-if="scope.row.type === 0">充值</span>
<span v-if="scope.row.type === 1">消耗</span>
<span v-if="scope.row.type === 2">退款</span>
<span v-if="scope.row.type === 3">其他</span>
</template>
</el-table-column>
<el-table-column prop="sumGold" sortable="custom" label="金币数量" width="110">
<template #default="scope">
<span>{{ (scope.row.sumGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="permanentGold" sortable="custom" label="永久金币" width="110">
<template #default="scope">
<span>{{ (scope.row.permanentGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="freeGold" sortable="custom" label="免费金币" width="110">
<template #default="scope">
<span>{{ (calculateFreeGold(scope.row) || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="taskGold" sortable="custom" label="任务金币" width="110">
<template #default="scope">
<span>{{ (scope.row.taskGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="adminName" label="提交人" width="110"/>
<el-table-column prop="auditTime" sortable="custom" label="更新时间" width="210" show-overflow-tooltip>
<template #default="scope">
</template>
</el-table-column>
<el-table-column fixed="left" prop="name" label="姓名" width="150" show-overflow-tooltip/>
<el-table-column fixed="left" prop="jwcode" label="精网号" width="120"/>
<el-table-column prop="market" label="所属地区" width="120"/>
<el-table-column prop="payPlatform" label="平台信息" width="140"/>
<el-table-column prop="type" label="更新类型" width="110">
<template #default="scope">
<span v-if="scope.row.type === 0">充值</span>
<span v-if="scope.row.type === 1">消耗</span>
<span v-if="scope.row.type === 2">退款</span>
<span v-if="scope.row.type === 3">其他</span>
</template>
</el-table-column>
<el-table-column prop="sumGold" sortable="custom" label="金币数量" width="110">
<template #default="scope">
<span>{{ (scope.row.sumGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="permanentGold" sortable="custom" label="永久金币" width="110">
<template #default="scope">
<span>{{ (scope.row.permanentGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="freeGold" sortable="custom" label="免费金币" width="110">
<template #default="scope">
<span>{{ (calculateFreeGold(scope.row) || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="taskGold" sortable="custom" label="任务金币" width="110">
<template #default="scope">
<span>{{ (scope.row.taskGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="adminName" label="提交人" width="110"/>
<el-table-column prop="auditTime" sortable="custom" label="更新时间" width="210" show-overflow-tooltip>
<template #default="scope">
<span>{{ <span>{{
moment(scope.row.auditTime).format('YYYY-MM-DD HH:mm:ss') moment(scope.row.auditTime).format('YYYY-MM-DD HH:mm:ss')
}}</span> }}</span>
</template>
</el-table-column>
</el-table>
</div>
<!-- 此处分页 -->
<div class="pagination" style="margin-top: 20px;display: flex;">
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper" :total="total"
@size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
</div>
</el-card>
</template>
</el-table-column>
</el-table>
</div>
<!-- 此处分页 -->
<div class="pagination" style="margin-top: 20px;display: flex;">
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper" :total="total"
@size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
</div>
</el-card>
<!-- 导出列表弹窗 --> <!-- 导出列表弹窗 -->
<el-dialog v-model="exportListVisible" title="导出列表" width="80%"> <el-dialog v-model="exportListVisible" title="导出列表" width="80%">

Loading…
Cancel
Save