Files
jsowell-charger-web/jsowell-ui/src/views/member/memberGroup/detail.vue

200 lines
9.8 KiB
Vue
Raw Normal View History

2024-01-15 09:28:57 +08:00
<template>
2024-01-15 11:02:08 +08:00
<div class="app-container">
<el-row type="flex" justify="space-between">
<!-- 左侧内容 -->
2024-01-15 13:36:20 +08:00
<!-- <el-col :span="5">
2024-01-15 11:02:08 +08:00
<div class="advContent" style="margin-bottom:10px">
<el-card class="box-card" shadow="hover">
<div slot="header" class="clearfix">
<span>会员信息</span>
</div>
<div style="margin: 10px 0">
</div>
</el-card>
</div>
2024-01-15 13:36:20 +08:00
</el-col> -->
2024-01-15 11:02:08 +08:00
<!-- 右侧内容 -->
2024-01-15 13:36:20 +08:00
<!-- <el-col :span="19" style="margin-left: 18px;"> -->
<el-col :span="24">
2024-01-15 11:02:08 +08:00
<el-tabs type="border-card">
2024-01-15 14:06:42 +08:00
<!-- 客户 -->
2024-01-15 11:02:08 +08:00
<el-tab-pane label="客户">
2024-01-15 13:36:20 +08:00
<el-col>
2024-01-15 11:02:08 +08:00
<el-button type="primary" size="mini" icon="el-icon-plus"
@click="handleAddMember">添加会员</el-button>
</el-col>
2024-01-15 14:19:59 +08:00
<el-table :data="memberGroupList" stripe style="width: 100%" v-loading="loading">
2024-01-15 13:36:20 +08:00
<el-table-column label="会员id" align="center" prop="memberId" />
<el-table-column label="昵称" align="center" prop="nickName" />
2024-01-15 14:06:42 +08:00
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.member_status" :value="scope.row.status" />
</template>
</el-table-column>
2024-01-15 13:36:20 +08:00
<el-table-column label="头像" align="center" prop="avatarUrl">
<template slot-scope="scope">
<el-image style="height: 50px;width: 50px"
:src="scope.row.avatarUrl === null ? defaultImg[0].img : scope.row.avatarUrl"
:preview-src-list='[scope.row.avatarUrl === null ? defaultImg[0].img : scope.row.avatarUrl]' />
</template>
</el-table-column>
<el-table-column label="手机号" align="center" prop="mobileNumber" />
</el-table>
<!--分页-->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
2024-01-15 14:19:59 +08:00
:limit.sync="queryParams.pageSize" @pagination="getMemberList" style="margin-bottom: 20px" />
2024-01-15 13:36:20 +08:00
</el-tab-pane>
<!-- 交易明细 -->
<el-tab-pane label="交易明细">
2024-01-15 14:19:59 +08:00
<el-table :data="details" stripe style="width: 100%" v-loading="loading">
2024-01-15 13:36:20 +08:00
<el-table-column label="订单编号" align="center" prop="orderCode" width="280px">
<template slot-scope="scope">
<router-link :to="'/order/index/orderDetail/' + scope.row.orderCode" class="link-type">
<span>{{ scope.row.orderCode }}</span>
</router-link>
</template>
</el-table-column>
<el-table-column label="订单状态描述" align="center" prop="orderStatusDescribe" />
<el-table-column label="会员昵称" align="center" prop="nickName" width="120px" />
<el-table-column label="电话号码" align="center" prop="mobileNumber" width="120px" />
<el-table-column label="站点" align="center" prop="stationName" />
<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="startMode" width="100px">
<template slot-scope="scope">
<dict-tag :options="dict.type.start_mode" :value="scope.row.startMode" />
</template>
</el-table-column>
<el-table-column label="支付方式" align="center" prop="payMode">
<template slot-scope="scope">
<dict-tag :options="dict.type.pay_mode" :value="scope.row.payMode" />
</template>
</el-table-column>
<el-table-column label="支付状态" align="center" prop="payStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.pay_status" :value="scope.row.payStatus" />
</template>
</el-table-column>
<el-table-column label="支付金额" align="center" prop="payAmount" />
<el-table-column label="充电度数" align="center" prop="chargingDegree" width="100px" />
<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" width="180" />
<el-table-column label="结束充电时间" align="center" prop="chargeEndTime" width="180" />
<el-table-column label="订单总金额" align="center" prop="orderAmount" width="100px" />
</el-table>
<!--分页-->
<pagination v-show="getTotal > 0" :total="getTotal" :page.sync="from.pageNum"
2024-01-15 14:19:59 +08:00
:limit.sync="from.pageSize" @pagination="getOrderList" style="margin-bottom: 20px" />
2024-01-15 11:02:08 +08:00
</el-tab-pane>
</el-tabs>
</el-col>
</el-row>
<!--添加会员-->
2024-01-15 13:36:20 +08:00
<el-dialog title="添加会员" :visible.sync="openAddMember" :before-close="cancel" width="500px" append-to-body>
2024-01-15 11:02:08 +08:00
<el-input v-model="queryParams.phoneNumber" placeholder="请输入手机号"></el-input>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
</div>
</el-dialog>
2024-01-15 09:28:57 +08:00
</div>
</template>
<script>
2024-01-15 13:36:20 +08:00
import { queryOrderList, addMember, queryMemberList } from "@/api/member/memberGroup";
2024-01-15 14:19:59 +08:00
import {listOrder} from "@/api/order/order";
2024-01-15 09:28:57 +08:00
export default {
name: 'JsowellUiDetail',
2024-01-15 14:06:42 +08:00
dicts: ['member_status', 'start_mode', 'pay_mode', 'pay_status'],
2024-01-15 09:28:57 +08:00
data() {
return {
2024-01-15 14:19:59 +08:00
// 遮罩
loading: false,
2024-01-15 11:02:08 +08:00
openAddMember: false,
2024-01-15 13:36:20 +08:00
from: {
pageNum: 1,
pageSize: 10,
groupCode: this.$route.params.groupCode,
merchantId: null,
stationId: null,
groupLevel: null,
groupType: null,
discount: null,
phoneNumber: null
},
2024-01-15 11:02:08 +08:00
queryParams: {
2024-01-15 13:36:20 +08:00
pageNum: 1,
pageSize: 10,
2024-01-15 11:02:08 +08:00
groupCode: this.$route.params.groupCode,
2024-01-15 13:36:20 +08:00
merchantId: null,
stationId: null,
groupLevel: null,
groupType: null,
discount: null,
2024-01-15 11:02:08 +08:00
phoneNumber: null
2024-01-15 13:36:20 +08:00
},
total: 0,
memberGroupList: [],
getTotal: 0,
details: []
2024-01-15 09:28:57 +08:00
};
},
mounted() {
2024-01-15 11:02:08 +08:00
console.log(this.$route.params.groupCode);
2024-01-15 14:19:59 +08:00
this.getMemberList();
this.getOrderList();
2024-01-15 09:28:57 +08:00
},
methods: {
2024-01-15 11:02:08 +08:00
handleAddMember() {
this.openAddMember = true
},
/** 添加会员按钮 */
submitForm() {
console.log(this.queryParams);
var reg_tel = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
if (!reg_tel.test(this.queryParams.phoneNumber)) {
this.$modal.msgError("请正确填写您的手机号码!");
this.queryParams.phoneNumber = ''
return false;
}
2024-01-15 13:36:20 +08:00
addMember(this.queryParams).then(response => {
2024-01-15 11:02:08 +08:00
console.log(response);
this.$modal.msgSuccess("添加成功");
2024-01-15 13:36:20 +08:00
this.openAddMember = false;
2024-01-15 14:06:42 +08:00
this.queryParams.phoneNumber = '';
2024-01-15 14:19:59 +08:00
this.getMemberList();
2024-01-15 11:02:08 +08:00
});
},
cancel() {
this.openAddMember = false;
2024-01-15 13:36:20 +08:00
this.queryParams.phoneNumber = '';
},
2024-01-15 14:19:59 +08:00
getMemberList() {
this.loading = true;
2024-01-15 13:36:20 +08:00
console.log(this.queryParams);
queryMemberList(this.queryParams).then(response => {
console.log(response);
this.memberGroupList = response.rows;
this.total = response.total;
2024-01-15 14:19:59 +08:00
this.loading = false;
2024-01-15 13:36:20 +08:00
});
},
2024-01-15 14:19:59 +08:00
getOrderList() {
this.loading = true;
listOrder(this.from).then((response) => {
2024-01-15 13:36:20 +08:00
this.details = response.rows;
2024-01-15 14:19:59 +08:00
console.log("this.from", this.from);
console.log("response", response);
2024-01-15 13:36:20 +08:00
this.getTotal = response.total;
2024-01-15 14:19:59 +08:00
this.loading = false;
2024-01-15 13:36:20 +08:00
});
2024-01-15 11:02:08 +08:00
}
2024-01-15 09:28:57 +08:00
},
};
</script>
2024-01-15 11:10:42 +08:00
<style lang="scss" scoped></style>