集团车辆消费明细

This commit is contained in:
BOOL\25024
2024-03-14 16:43:01 +08:00
parent 651ad8e5f0
commit 64ae9e6f8d
2 changed files with 71 additions and 28 deletions

View File

@@ -104,4 +104,12 @@ export function queryMemberGroupConsumptionList(data) {
method: 'post', method: 'post',
data: data data: data
}) })
}
// 查询会员组中车辆消费明细
export function queryConsumptionDetailListByVinCode(data) {
return request({
url: '/member/memberGroup/queryConsumptionDetailListByVinCode',
method: 'post',
data: data
})
} }

View File

@@ -19,6 +19,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="头像" align="center" prop="avatarUrl"> <el-table-column label="头像" align="center" prop="avatarUrl">
<template slot-scope="scope"> <template slot-scope="scope">
<el-image style="height: 50px;width: 50px" <el-image style="height: 50px;width: 50px"
:src="scope.row.avatarUrl === null ? defaultImg[0].img : scope.row.avatarUrl" :src="scope.row.avatarUrl === null ? defaultImg[0].img : scope.row.avatarUrl"
@@ -27,6 +28,7 @@
</el-table-column> </el-table-column>
<el-table-column label="手机号" align="center" prop="mobileNumber" /> <el-table-column label="手机号" align="center" prop="mobileNumber" />
<el-table-column label="操作" align="center" width="200"> <el-table-column label="操作" align="center" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-delete" <el-button size="mini" type="text" icon="el-icon-delete"
@click="deleteMember(scope.row)">删除 @click="deleteMember(scope.row)">删除
@@ -36,7 +38,8 @@
</el-table> </el-table>
<!--分页--> <!--分页-->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getMemberList" style="margin-bottom: 20px" /> :limit.sync="queryParams.pageSize" @pagination="getMemberList"
style="margin-bottom: 20px" />
</el-tab-pane> </el-tab-pane>
<!-- 交易明细 --> <!-- 交易明细 -->
@@ -50,9 +53,10 @@
</el-form-item> </el-form-item>
<el-form-item label="订单状态" prop="orderStatus" style="width: 230px"> <el-form-item label="订单状态" prop="orderStatus" style="width: 230px">
<el-select v-model="from.orderStatus" placeholder="请选择订单状态" clearable style="width: 140px"> <el-select v-model="from.orderStatus" placeholder="请选择订单状态" clearable
<el-option v-for="dict in dict.type.order_status" :key="dict.value" :label="dict.label" style="width: 140px">
:value="dict.value" /> <el-option v-for="dict in dict.type.order_status" :key="dict.value"
:label="dict.label" :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@@ -86,24 +90,26 @@
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" <el-button type="warning" plain icon="el-icon-download" size="mini"
v-hasPermi="['order:order:export']">导出 @click="handleExport" v-hasPermi="['order:order:export']">导出
</el-button> </el-button>
</el-col> </el-col>
</el-row> </el-row>
<ul class="uls"> <ul class="uls">
<li v-for="totalDate in totalDateList"> <li v-for="totalDate in totalDateList">
{{ totalDate.dateDescription }}期间总用电量{{ totalDate.sumUsedElectricity }}总消费金额{{ {{ totalDate.dateDescription }}期间总用电量{{ totalDate.sumUsedElectricity }}总消费金额{{
totalDate.sumOrderAmount totalDate.sumOrderAmount
}}总结算金额{{ totalDate.sumSettleAmount }} }}总结算金额{{ totalDate.sumSettleAmount }}
</li> </li>
</ul> </ul>
<!--结果展示--> <!--结果展示-->
<el-table :data="orderListResult" stripe style="width: 100%" v-loading="loading"> <el-table :data="orderListResult" stripe style="width: 100%" v-loading="loading">
<el-table-column label="订单编号" align="center" prop="orderCode" width="280px"> <el-table-column label="订单编号" align="center" prop="orderCode" width="280px">
<template slot-scope="scope"> <template slot-scope="scope">
<router-link :to="'/order/index/orderDetail/' + scope.row.orderCode" class="link-type"> <router-link :to="'/order/index/orderDetail/' + scope.row.orderCode"
class="link-type">
<span>{{ scope.row.orderCode }}</span> <span>{{ scope.row.orderCode }}</span>
</router-link> </router-link>
</template> </template>
@@ -115,16 +121,19 @@
<el-table-column label="充电桩枪口号" align="center" prop="pileConnectorCode" width="200px" /> <el-table-column label="充电桩枪口号" align="center" prop="pileConnectorCode" width="200px" />
<el-table-column label="微信商户订单号" align="center" prop="outTradeNo" width="165px" /> <el-table-column label="微信商户订单号" align="center" prop="outTradeNo" width="165px" />
<el-table-column label="启动方式" align="center" prop="startMode" width="100px"> <el-table-column label="启动方式" align="center" prop="startMode" width="100px">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.start_mode" :value="scope.row.startMode" /> <dict-tag :options="dict.type.start_mode" :value="scope.row.startMode" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="支付方式" align="center" prop="payMode"> <el-table-column label="支付方式" align="center" prop="payMode">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.pay_mode" :value="scope.row.payMode" /> <dict-tag :options="dict.type.pay_mode" :value="scope.row.payMode" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="支付状态" align="center" prop="payStatus"> <el-table-column label="支付状态" align="center" prop="payStatus">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.pay_status" :value="scope.row.payStatus" /> <dict-tag :options="dict.type.pay_status" :value="scope.row.payStatus" />
</template> </template>
@@ -153,8 +162,10 @@
<el-table-column label="备注" align="center" prop="templateRemark" /> <el-table-column label="备注" align="center" prop="templateRemark" />
<el-table-column label="描述" align="center" prop="templateDesc" /> <el-table-column label="描述" align="center" prop="templateDesc" />
<el-table-column label="操作" align="center" width="200"> <el-table-column label="操作" align="center" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="addasite(scope.row)">修改 <el-button size="mini" type="text" icon="el-icon-edit"
@click="addasite(scope.row)">修改
</el-button> </el-button>
<el-button size="mini" type="text" icon="el-icon-delete" <el-button size="mini" type="text" icon="el-icon-delete"
@click="handleDelete(scope.row)">删除 @click="handleDelete(scope.row)">删除
@@ -164,7 +175,8 @@
</el-table> </el-table>
<!--分页--> <!--分页-->
<pagination v-show="stationTotal > 0" :total="stationTotal" :page.sync="queryStation.pageNum" <pagination v-show="stationTotal > 0" :total="stationTotal" :page.sync="queryStation.pageNum"
:limit.sync="queryStation.pageSize" @pagination="getStationList" style="margin-bottom: 20px" /> :limit.sync="queryStation.pageSize" @pagination="getStationList"
style="margin-bottom: 20px" />
</el-tab-pane> </el-tab-pane>
<!-- 车辆列表 --> <!-- 车辆列表 -->
@@ -175,15 +187,16 @@
<el-table-column label="总消费金额" align="center" prop="totalConsumptionAmount" /> <el-table-column label="总消费金额" align="center" prop="totalConsumptionAmount" />
<el-table-column label="更新时间" align="center" prop="lastDate" /> <el-table-column label="更新时间" align="center" prop="lastDate" />
<el-table-column label="操作" align="center" width="200"> <el-table-column label="操作" align="center" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" @click="details(scope.row)">明细</el-button> <el-button size="mini" type="text" @click="details(scope.row)">明细</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!--分页--> <!--分页-->
<pagination v-show="consumptionTotal > 0" :total="consumptionTotal" :page.sync="queryCar.pageNum" <pagination v-show="consumptionTotal > 0" :total="consumptionTotal"
:limit.sync="queryCar.pageSize" @pagination="getQueryMemberGroupConsumptionList" :page.sync="queryCar.pageNum" :limit.sync="queryCar.pageSize"
style="margin-bottom: 20px" /> @pagination="getQueryMemberGroupConsumptionList" style="margin-bottom: 20px" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@@ -346,7 +359,7 @@
<span>24小时尖峰平谷分布设置</span> <span>24小时尖峰平谷分布设置</span>
<div> <div>
<el-tag v-for="item in tagsTime" :key="item.label" :type="item.type" <el-tag v-for="item in tagsTime" :key="item.label" :type="item.type"
style="margin: 10px 10px 10px 0; width: 160px; height: 30px line-height:30px;text-align: center;" style="margin: 10px 10px 10px 0; width: 160px; height: 30px ;line-height:30px;text-align: center;"
effect="dark"> effect="dark">
{{ item.label }} {{ item.label }}
</el-tag> </el-tag>
@@ -358,20 +371,30 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 车辆列表明细 --> <!-- 车辆列表明细 -->
<el-dialog title="订单明细" :visible.sync="vehicleDetails" :before-close="closeDetails" width="1000px" append-to-body> <el-dialog title="订单明细" :visible.sync="vehicleDetails" :before-close="closeDetails" width="1800px"
append-to-body>
<el-table :data="closeList" stripe style="width: 100%" v-loading="loading"> <el-table :data="closeList" stripe style="width: 100%" v-loading="loading">
<el-table-column label="车牌号" align="center" prop="" width="300" /> <el-table-column label="订单编号" align="center" prop="orderCode" />
<el-table-column label="站点名称" align="center" prop="stationName" />
<el-table-column label="昵称" align="center" prop="nickName" />
<el-table-column label="手机号" align="center" prop="mobileNumber" />
<el-table-column label="实时充电度数" align="center" prop="realTimeChargingDegree" />
<el-table-column label="实时消费金额" align="center" prop="realTimeAmount" />
<el-table-column label="起始SOC" align="center" prop="startSoc" />
<el-table-column label="终止SOC" align="center" prop="endSoc" />
<el-table-column label="开始时间" align="center" prop="chargeStartTime" />
<el-table-column label="结束充电时间" align="center" prop="chargeEndTime" />
</el-table> </el-table>
<!--分页--> <!--分页-->
<pagination v-show="closeTotal > 0" :total="closeTotal" :page.sync="queryCar.pageNum" <pagination v-show="closeTotal > 0" :total="closeTotal" :page.sync="detailParameters.pageNum"
:limit.sync="queryCar.pageSize" @pagination="getQueryMemberGroupConsumptionList" :limit.sync="detailParameters.pageSize" @pagination="getQueryConsumptionDetailListByVinCode"
style="margin-bottom: 20px" /> style="margin-bottom: 20px" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { addMember, queryMemberList, preferentialTemplates, queryStationList, removeStationFromMemberGroup, removeMemberFromMemberGroup, queryMemberGroupConsumptionList } from "@/api/member/memberGroup"; import { addMember, queryMemberList, preferentialTemplates, queryStationList, removeStationFromMemberGroup, removeMemberFromMemberGroup, queryMemberGroupConsumptionList, queryConsumptionDetailListByVinCode } from "@/api/member/memberGroup";
import { listOrder, totalData } from "@/api/order/order"; import { listOrder, totalData } from "@/api/order/order";
import { getStationListByMerchantId } from "@/api/pile/station"; import { getStationListByMerchantId } from "@/api/pile/station";
import { queryStationBillingTemplateList, getTemplate, queryStationPreferentialBillingTemplateList, updateBillingTemplate } from "@/api/billing/template.js"; import { queryStationBillingTemplateList, getTemplate, queryStationPreferentialBillingTemplateList, updateBillingTemplate } from "@/api/billing/template.js";
@@ -554,6 +577,12 @@ export default {
vehicleDetails: false, vehicleDetails: false,
closeList: [], closeList: [],
closeTotal: 0, closeTotal: 0,
detailParameters: {
pageNum: 1,
pageSize: 10,
groupCode: this.$route.params.groupCode.split('&')[0],
vinCode: null
}
}; };
}, },
async mounted() { async mounted() {
@@ -562,7 +591,7 @@ export default {
this.getStationList(); this.getStationList();
await this.defaultDate(); await this.defaultDate();
this.handleQuery(); this.handleQuery();
this.getQueryMemberGroupConsumptionList() this.getQueryMemberGroupConsumptionList();
}, },
computed: {}, computed: {},
watch: { watch: {
@@ -792,9 +821,7 @@ export default {
// 删除站点 // 删除站点
handleDelete(row) { handleDelete(row) {
console.log(row); console.log(row);
this.$modal.confirm('是否确认删除"' + row.stationName + '"').then(function () { this.$modal.confirm('是否确认删除"' + row.stationName + '"').then(function () { }).then(() => {
}).then(() => {
let remove = { let remove = {
groupCode: this.$route.params.groupCode.split('&')[0], groupCode: this.$route.params.groupCode.split('&')[0],
stationId: row.stationId stationId: row.stationId
@@ -829,9 +856,7 @@ export default {
// 删除会员 // 删除会员
deleteMember(row) { deleteMember(row) {
console.log(row); console.log(row);
this.$modal.confirm('是否确认删除昵称为"' + row.nickName + '"会员').then(function () { this.$modal.confirm('是否确认删除昵称为"' + row.nickName + '"会员').then(function () { }).then(() => {
}).then(() => {
let remove = { let remove = {
groupCode: this.$route.params.groupCode.split('&')[0], groupCode: this.$route.params.groupCode.split('&')[0],
memberId: row.memberId memberId: row.memberId
@@ -873,12 +898,22 @@ export default {
details(row) { details(row) {
console.log(row); console.log(row);
this.vehicleDetails = true; this.vehicleDetails = true;
this.detailParameters.vinCode = row.vinCode;
this.getQueryConsumptionDetailListByVinCode();
},
getQueryConsumptionDetailListByVinCode() {
console.log(this.detailParameters, 'detailParameters');
queryConsumptionDetailListByVinCode(this.detailParameters).then((response) => {
console.log("queryConsumptionDetailListByVinCode ", response);
this.closeList = response.rows;
this.closeTotal = response.total;
});
}, },
// 关闭明细弹框 // 关闭明细弹框
closeDetails() { closeDetails() {
this.vehicleDetails = false; this.vehicleDetails = false;
this.closeList = []; this.closeList = [];
} },
}, },
}; };
</script> </script>