|
@@ -33,83 +33,6 @@
|
|
|
:model="state.formQuery"
|
|
:model="state.formQuery"
|
|
|
ref="queryRef"
|
|
ref="queryRef"
|
|
|
size="default" label-width="0px" class="mt5 mb5">
|
|
size="default" label-width="0px" class="mt5 mb5">
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.actualElecMoney"
|
|
|
|
|
- placeholder="实际抄表电费金额(分)"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.actualPower"
|
|
|
|
|
- placeholder="实际抄表电量"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.avgConnectorElec"
|
|
|
|
|
- placeholder="单枪平均日充电量"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.avgOrderElec"
|
|
|
|
|
- placeholder="订单平均充电量"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.avgOrderMoney"
|
|
|
|
|
- placeholder="订单平均充电费用"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.chargeUsers"
|
|
|
|
|
- placeholder="充电人数"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.connectorUsageRate"
|
|
|
|
|
- placeholder="设备使用率"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.discountAmount"
|
|
|
|
|
- placeholder="总优惠金额"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.elecMoney"
|
|
|
|
|
- placeholder="总电费"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.serviceMoney"
|
|
|
|
|
- placeholder="总服务费"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.serviceMoneyDiscount"
|
|
|
|
|
- placeholder="服务费优惠金额"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
<el-input
|
|
<el-input
|
|
|
v-model="state.formQuery.statMonth"
|
|
v-model="state.formQuery.statMonth"
|
|
|
placeholder="统计时间"
|
|
placeholder="统计时间"
|
|
@@ -117,41 +40,22 @@
|
|
|
@blur="loadData(true)"
|
|
@blur="loadData(true)"
|
|
|
class="wd150 mr10">
|
|
class="wd150 mr10">
|
|
|
</el-input>
|
|
</el-input>
|
|
|
- <el-input
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <ext-select
|
|
|
v-model="state.formQuery.stationId"
|
|
v-model="state.formQuery.stationId"
|
|
|
- placeholder="站点id"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.totalMoney"
|
|
|
|
|
- placeholder="总充电费用"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.totalPower"
|
|
|
|
|
- placeholder="总电量"
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.updateTime"
|
|
|
|
|
- placeholder=""
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
- class="wd150 mr10">
|
|
|
|
|
- </el-input>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="state.formQuery.validOrders"
|
|
|
|
|
- placeholder="充电有效订单数"
|
|
|
|
|
|
|
+ multiple
|
|
|
|
|
+ placeholder="站点"
|
|
|
|
|
+ url="station/listStation"
|
|
|
|
|
+ url-method="get"
|
|
|
|
|
+ label-key="stationName"
|
|
|
|
|
+ value-key="stationId"
|
|
|
|
|
+ @on-change="loadData(true)"
|
|
|
|
|
+ data-key=""
|
|
|
clearable
|
|
clearable
|
|
|
- @blur="loadData(true)"
|
|
|
|
|
class="wd150 mr10">
|
|
class="wd150 mr10">
|
|
|
- </el-input>
|
|
|
|
|
|
|
+ </ext-select>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-button class="ml10" plain size="default" type="success" @click="loadData(true)">
|
|
<el-button class="ml10" plain size="default" type="success" @click="loadData(true)">
|
|
@@ -174,7 +78,6 @@
|
|
|
<template #empty>
|
|
<template #empty>
|
|
|
<el-empty></el-empty>
|
|
<el-empty></el-empty>
|
|
|
</template>
|
|
</template>
|
|
|
- <el-table-column type="selection" align="center" width="55" fixed="left"/>
|
|
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
v-for="field in state.tableData.columns"
|
|
v-for="field in state.tableData.columns"
|
|
|
:key="field.prop"
|
|
:key="field.prop"
|
|
@@ -187,8 +90,20 @@
|
|
|
:show-overflow-tooltip="!field.fixed&&field.width>150"
|
|
:show-overflow-tooltip="!field.fixed&&field.width>150"
|
|
|
>
|
|
>
|
|
|
<template #default="{row}">
|
|
<template #default="{row}">
|
|
|
- <template v-if="field.prop==='expand'">
|
|
|
|
|
- <p style="padding-left: 2em;" v-html="row[field.prop]"></p>
|
|
|
|
|
|
|
+ <template v-if="field.prop==='action'">
|
|
|
|
|
+ <el-button v-auth="'stationStatMonth.modify'" size="small" plain type="warning" @click="onRowClick('view',row)">编辑</el-button>
|
|
|
|
|
+ <el-button v-auth="'stationStatMonth.list'" size="small" plain type="primary" @click="onRowClick('view',row)">查看</el-button>
|
|
|
|
|
+ <el-button v-auth="'statement.add'" size="small" plain type="success" @click="handleCreateStatements(row)">生成对账单</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template v-else-if="field.prop==='stationId'">
|
|
|
|
|
+ <div class="text-align-center">
|
|
|
|
|
+ {{row.stationId}}
|
|
|
|
|
+ <hr>
|
|
|
|
|
+ {{row.stationName}}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template v-else-if="['totalMoney','elecMoney','actualElecMoney','serviceMoney','serviceMoneyDiscount','discountAmount','avgOrderMoney'].includes(field.prop)">
|
|
|
|
|
+ {{ u.fmt.fmtMoney(row[field.prop]) }}
|
|
|
</template>
|
|
</template>
|
|
|
<template v-else>
|
|
<template v-else>
|
|
|
<div>{{row[field.prop]}}</div>
|
|
<div>{{row[field.prop]}}</div>
|
|
@@ -208,11 +123,12 @@
|
|
|
import {defineAsyncComponent, reactive, onMounted, onBeforeMount, ref, getCurrentInstance, nextTick, onBeforeUnmount} from 'vue';
|
|
import {defineAsyncComponent, reactive, onMounted, onBeforeMount, ref, getCurrentInstance, nextTick, onBeforeUnmount} from 'vue';
|
|
|
import {$body,$get} from "/@/utils/request";
|
|
import {$body,$get} from "/@/utils/request";
|
|
|
import {Msg} from "/@/utils/message";
|
|
import {Msg} from "/@/utils/message";
|
|
|
-
|
|
|
|
|
|
|
+import u from "/@/utils/u";
|
|
|
|
|
|
|
|
import ExtPage from '/@/components/form/ExtPage.vue'
|
|
import ExtPage from '/@/components/form/ExtPage.vue'
|
|
|
|
|
|
|
|
import mittBus from '/@/utils/mitt';
|
|
import mittBus from '/@/utils/mitt';
|
|
|
|
|
+import ExtSelect from "/@/components/form/ExtSelect.vue";
|
|
|
|
|
|
|
|
const StationStatMonthDialog = defineAsyncComponent(() => import("/@/views/admin/station/stat/dialog.vue"));
|
|
const StationStatMonthDialog = defineAsyncComponent(() => import("/@/views/admin/station/stat/dialog.vue"));
|
|
|
|
|
|
|
@@ -233,20 +149,18 @@ const state = reactive({
|
|
|
data: [] as Array < any >,
|
|
data: [] as Array < any >,
|
|
|
loading: false,
|
|
loading: false,
|
|
|
columns: [
|
|
columns: [
|
|
|
- {type: 'selection', width: 60, align: 'center', fixed: 'left'},
|
|
|
|
|
- {label: '实际抄表电费金额(分)', prop: 'actualElecMoney', resizable: true,width:130},
|
|
|
|
|
- {label: '订单平均充电费用', prop: 'avgOrderMoney', resizable: true,width:130},
|
|
|
|
|
- {label: '充电人数', prop: 'chargeUsers', resizable: true,width:130},
|
|
|
|
|
- {label: '', prop: 'createTime', sortable: 'custom', resizable: true,width:150},
|
|
|
|
|
- {label: '总优惠金额', prop: 'discountAmount', resizable: true,width:130},
|
|
|
|
|
|
|
+ {label: '站点', prop: 'stationId', resizable: true,width:150,fixed:'left'},
|
|
|
|
|
+ {label: '统计时间', prop: 'statMonth', resizable: true,width:130},
|
|
|
|
|
+ {label: '总充电费用', prop: 'totalMoney', resizable: true,width:130},
|
|
|
{label: '总电费', prop: 'elecMoney', resizable: true,width:130},
|
|
{label: '总电费', prop: 'elecMoney', resizable: true,width:130},
|
|
|
|
|
+ {label: '实际抄表电费金额', prop: 'actualElecMoney', resizable: true,width:160},
|
|
|
{label: '总服务费', prop: 'serviceMoney', resizable: true,width:130},
|
|
{label: '总服务费', prop: 'serviceMoney', resizable: true,width:130},
|
|
|
- {label: '服务费优惠金额', prop: 'serviceMoneyDiscount', resizable: true,width:130},
|
|
|
|
|
- {label: '统计时间', prop: 'statMonth', resizable: true},
|
|
|
|
|
- {label: '站点id', prop: 'stationId', resizable: true},
|
|
|
|
|
- {label: '总充电费用', prop: 'totalMoney', resizable: true,width:130},
|
|
|
|
|
- {label: '', prop: 'updateTime', sortable: 'custom', resizable: true,width:150},
|
|
|
|
|
- {label: '充电有效订单数', prop: 'validOrders', resizable: true,width:130},
|
|
|
|
|
|
|
+ {label: '服务费优惠金额', prop: 'serviceMoneyDiscount', resizable: true,width:160},
|
|
|
|
|
+ {label: '总优惠金额', prop: 'discountAmount', resizable: true,width:130},
|
|
|
|
|
+ {label: '充电人数', prop: 'chargeUsers', resizable: true,width:130},
|
|
|
|
|
+ {label: '订单平均充电费用', prop: 'avgOrderMoney', resizable: true,width:160},
|
|
|
|
|
+ {label: '充电有效订单数', prop: 'validOrders', resizable: true,width:160},
|
|
|
|
|
+ {label: '创建时间', prop: 'createTime', sortable: 'custom', resizable: true,width:200,fixed: 'right',},
|
|
|
{
|
|
{
|
|
|
label: '操作', prop: 'action', width: 180, align: 'center', fixed: 'right',
|
|
label: '操作', prop: 'action', width: 180, align: 'center', fixed: 'right',
|
|
|
}
|
|
}
|
|
@@ -288,6 +202,12 @@ onBeforeUnmount(() => {
|
|
|
|
|
|
|
|
//region 方法区
|
|
//region 方法区
|
|
|
// 初始化表格数据
|
|
// 初始化表格数据
|
|
|
|
|
+const handleCreateStatements = (statMonth) => {
|
|
|
|
|
+ $get(`statements/create/${statMonth.id}`).then(()=>{
|
|
|
|
|
+ Msg.message(`生成对账单成功`)
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
const loadData = (refresh: boolean = false) => {
|
|
const loadData = (refresh: boolean = false) => {
|
|
|
if (refresh) {
|
|
if (refresh) {
|
|
|
state.pageQuery.pageNum = 1;
|
|
state.pageQuery.pageNum = 1;
|