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

357 lines
14 KiB
Vue
Raw Normal View History

2023-12-26 14:59:02 +08:00
<template>
<div class="app-container">
2024-01-15 09:28:57 +08:00
<!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
2023-12-26 14:59:02 +08:00
<el-form-item label="会员组编号" prop="groupCode">
<el-input
v-model="queryParams.groupCode"
placeholder="请输入会员组编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="运营商id" prop="merchantId">
<el-input
v-model="queryParams.merchantId"
placeholder="请输入运营商id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="站点id" prop="stationId">
<el-input
v-model="queryParams.stationId"
placeholder="请输入站点id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="会员组等级" prop="groupLevel">
<el-input
v-model="queryParams.groupLevel"
placeholder="请输入会员组等级"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="折扣率" prop="discount">
<el-input
v-model="queryParams.discount"
placeholder="请输入折扣率"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>-->
2023-12-30 15:13:49 +08:00
<el-row :gutter="10" class="mb8">
2023-12-26 14:59:02 +08:00
<el-col :span="1.5">
2024-01-15 09:28:57 +08:00
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['member:memberGroup:add']">新增</el-button>
2023-12-26 14:59:02 +08:00
</el-col>
2023-12-30 15:13:49 +08:00
<!--<el-col :span="1.5">
2023-12-26 14:59:02 +08:00
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['member:memberGroup:edit']"
>修改</el-button>
2023-12-30 15:13:49 +08:00
</el-col>-->
<!--<el-col :span="1.5">
2023-12-26 14:59:02 +08:00
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['member:memberGroup:remove']"
>删除</el-button>
2023-12-30 15:13:49 +08:00
</el-col>-->
<!--<el-col :span="1.5">
2023-12-26 14:59:02 +08:00
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['member:memberGroup:export']"
>导出</el-button>
2023-12-30 15:13:49 +08:00
</el-col>-->
2023-12-26 14:59:02 +08:00
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
2023-12-30 15:13:49 +08:00
</el-row>
2023-12-26 14:59:02 +08:00
<el-table v-loading="loading" :data="memberGroupList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
2024-01-15 09:28:57 +08:00
<!-- <el-table-column label="集团编号" align="center" prop="groupCode" /> -->
<el-table-column prop="groupCode" label="集团编号" align="center">
<template slot-scope="scope">
<router-link :to="'/member/memberGroup/detail/' + scope.row.groupCode" class="link-type">
<span>{{ scope.row.groupCode }}</span>
</router-link>
</template>
</el-table-column>
2024-01-02 15:29:30 +08:00
<el-table-column label="运营商名称" align="center" prop="merchantName" />
<el-table-column label="站点名称" align="center" prop="stationName" />
2024-01-15 09:28:57 +08:00
<el-table-column label="类型" align="center" prop="groupType">
2024-01-02 15:29:30 +08:00
<template slot-scope="scope">
2024-01-15 09:28:57 +08:00
<dict-tag :options="dict.type.group_type" :value="scope.row.groupType" />
2024-01-02 15:29:30 +08:00
</template>
</el-table-column>
2024-01-18 16:38:18 +08:00
<el-table-column label="折扣率" align="center" prop="discount" >
<template slot-scope="scope">
<span>{{ scope.row.discount }}</span>
</template>
</el-table-column>
2023-12-26 14:59:02 +08:00
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
2024-01-15 09:28:57 +08:00
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['member:memberGroup:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['member:memberGroup:remove']">删除</el-button>
2023-12-26 14:59:02 +08:00
</template>
</el-table-column>
</el-table>
2024-01-15 09:28:57 +08:00
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
2023-12-26 14:59:02 +08:00
<!-- 添加或修改会员组对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
2024-01-18 16:22:22 +08:00
<el-form ref="form" :model="form" :rules="dialogRules" label-width="120px">
2023-12-30 15:13:49 +08:00
<el-form-item label="选择运营商">
<el-select v-model="form.merchantId" clearable placeholder="请选择运营商"
2024-01-15 09:28:57 +08:00
@change="changeSelectStation(form.merchantId)">
<el-option v-for="item in merchantList" :key="item.merchantId" :label="item.merchantName"
:value="item.merchantId">
2023-12-30 15:13:49 +08:00
</el-option>
</el-select>
2023-12-26 14:59:02 +08:00
</el-form-item>
2023-12-30 15:13:49 +08:00
<!--<el-form-item label="站点" prop="stationId">
2023-12-26 14:59:02 +08:00
<el-input v-model="form.stationId" placeholder="请输入站点id" />
2023-12-30 15:13:49 +08:00
</el-form-item>-->
<el-form-item label="站点" prop="stationId">
<el-select v-model="form.stationId" placeholder="请选择站点" clearable filterable style="width: 140px">
2024-01-15 09:28:57 +08:00
<el-option v-for="(station, index) in stationList" :key="index" :label="station.stationName"
:value="station.id" />
2023-12-30 15:13:49 +08:00
</el-select>
2023-12-26 14:59:02 +08:00
</el-form-item>
2024-01-02 16:00:33 +08:00
<el-form-item label="折扣类型" prop="groupType">
<el-radio-group v-model="form.groupType">
2024-01-15 09:28:57 +08:00
<el-radio v-for="item in dict.type.group_type" :key="item.value" :label="item.value">
{{ item.label }}
2024-01-02 16:00:33 +08:00
</el-radio>
</el-radio-group>
</el-form-item>
2023-12-26 14:59:02 +08:00
<el-form-item label="折扣率" prop="discount">
<el-input v-model="form.discount" placeholder="请输入折扣率" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
2024-01-03 17:07:01 +08:00
<!--添加会员-->
<el-dialog title="添加会员" :visible.sync="openAddMember" width="500px" append-to-body>
添加会员
</el-dialog>
2023-12-26 14:59:02 +08:00
</div>
</template>
<script>
import { listMemberGroup, getMemberGroup, delMemberGroup, addMemberGroup, updateMemberGroup } from "@/api/member/memberGroup";
2024-01-15 09:28:57 +08:00
import { getMerchantList } from "@/api/member/info";
import { getStationListByMerchantId } from "@/api/pile/station";
2023-12-26 14:59:02 +08:00
export default {
name: "MemberGroup",
2024-01-02 15:29:30 +08:00
dicts: ["group_type"],
2023-12-26 14:59:02 +08:00
data() {
return {
2024-01-03 17:07:01 +08:00
openAddMember: false,
2023-12-26 14:59:02 +08:00
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 会员组表格数据
memberGroupList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
2023-12-30 15:13:49 +08:00
// 运营商列表
merchantList: [],
// 站点列表
stationList: [],
2023-12-26 14:59:02 +08:00
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
groupCode: null,
merchantId: null,
stationId: null,
groupLevel: null,
groupType: null,
discount: null,
},
// 表单参数
form: {},
// 表单校验
2024-01-18 16:22:22 +08:00
rules: {},
createMerchantVip: {},
dialogRules: {
discount: [
{
required: true,
message: "请输入折扣率",
trigger: "blur",
},
{
pattern: /^((0\.[1-9]{1})|(([1-9]{1})(\.\d{1})?))$/,
message: "请输入0-10之间仅允许保留一位小数",
trigger: "blur",
},
],
}
2023-12-26 14:59:02 +08:00
};
},
created() {
this.getList();
2023-12-30 15:13:49 +08:00
this.getMerchantList();
2023-12-26 14:59:02 +08:00
},
methods: {
2023-12-30 15:13:49 +08:00
// 获取运营商列表
getMerchantList() {
getMerchantList().then((response) => {
console.log("response", response)
this.merchantList = response.obj;
this.createMerchantVip.targetMerchantId = this.merchantList[0].merchantId
})
},
changeSelectStation(value) {
console.log(value);
// 通过接口查
getStationListByMerchantId(value).then((response) => {
this.stationList = response.data;
});
},
2023-12-26 14:59:02 +08:00
/** 查询会员组列表 */
getList() {
this.loading = true;
listMemberGroup(this.queryParams).then(response => {
this.memberGroupList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
groupCode: null,
merchantId: null,
stationId: null,
groupLevel: null,
groupType: null,
discount: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
2024-01-15 09:28:57 +08:00
this.single = selection.length !== 1
2023-12-26 14:59:02 +08:00
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
2024-01-02 16:00:33 +08:00
this.title = "添加集团";
2023-12-26 14:59:02 +08:00
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getMemberGroup(id).then(response => {
this.form = response.data;
this.open = true;
2024-01-02 16:00:33 +08:00
this.title = "修改集团";
2023-12-26 14:59:02 +08:00
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateMemberGroup(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addMemberGroup(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
2024-01-15 09:28:57 +08:00
this.$modal.confirm('是否确认删除会员组编号为"' + ids + '"的数据项?').then(function () {
2023-12-26 14:59:02 +08:00
return delMemberGroup(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
2024-01-15 09:28:57 +08:00
}).catch(() => { });
2023-12-26 14:59:02 +08:00
},
/** 导出按钮操作 */
handleExport() {
this.download('member/memberGroup/export', {
...this.queryParams
}, `memberGroup_${new Date().getTime()}.xlsx`)
2024-01-03 17:07:01 +08:00
},
2023-12-26 14:59:02 +08:00
}
};
</script>