dev2 #1
35
src/api/base/store/menber.js
Normal file
35
src/api/base/store/menber.js
Normal file
@ -0,0 +1,35 @@
|
||||
import request from '@/utils/request'
|
||||
import { URL } from '@/config'
|
||||
|
||||
export function getList(params) {
|
||||
return request({
|
||||
url: URL.shop.base.store.menber.getList,
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
|
||||
export function exportMenber(params) {
|
||||
return request({
|
||||
url: URL.shop.base.store.menber.export,
|
||||
method: 'get',
|
||||
params,
|
||||
responseType: 'blob',
|
||||
})
|
||||
}
|
||||
|
||||
export function getNotice(params) {
|
||||
return request({
|
||||
url: URL.shop.base.store.menber.view,
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
|
||||
export function doDelete(data) {
|
||||
return request({
|
||||
url: URL.shop.base.store.grade.doDelete,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
@ -730,6 +730,12 @@ let url = {
|
||||
api_url + '/admin/shop/shop-base-store-category/getStoreClassify',
|
||||
categoryList: api_url + '/mobile/shop/shop-base-store-category/list',
|
||||
},
|
||||
menber:{
|
||||
getList: api_url + '/admin/shop/shop-store-member/list',
|
||||
export: api_url + '/admin/shop/shop-store-member/exportShopStoreMember',
|
||||
view: api_url + '/admin/shop/shop-store-member/getShopStoreMember',
|
||||
export: api_url + '/admin/shop/shop-store-member/exportShopStoreMember',
|
||||
},
|
||||
},
|
||||
market: {
|
||||
category: {
|
||||
|
||||
@ -63,6 +63,23 @@ export function convertRouter(asyncRoutes) {
|
||||
|
||||
route.children.push(obj)
|
||||
}
|
||||
if (route.meta.title == '店铺' && route.name == 'Vab807') {
|
||||
const obj = {
|
||||
path: '/storeMenber',
|
||||
component: '@/views/base/store/member/index.vue',
|
||||
name: 'Vab807111',
|
||||
redirect: null,
|
||||
meta: {
|
||||
title: '店铺会员',
|
||||
icon: '',
|
||||
noClosable: 0,
|
||||
hidden: null,
|
||||
},
|
||||
menuHidden: false,
|
||||
}
|
||||
|
||||
route.children.push(obj)
|
||||
}
|
||||
if (route.meta.title == '店铺' && route.name == 'Vab330') {
|
||||
const obj = {
|
||||
path: '/storeConf',
|
||||
|
||||
204
src/views/base/store/member/index.vue
Normal file
204
src/views/base/store/member/index.vue
Normal file
@ -0,0 +1,204 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<avue-crud :option="option" :table-loading="loading" :data="data" v-model:page="page" ref="crud" @row-del="rowDel" v-model="form" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
|
||||
<template slot="menuLeft">
|
||||
<el-button type="warning" plain icon="el-icon-download" @click="exportExcel">导出 </el-button>
|
||||
</template>
|
||||
<!-- <template slot-scope="{type,size,row,index}" slot="menuBefore">
|
||||
<el-button type="text" icon="el-icon-view" @click="openView(row)">查看 </el-button>
|
||||
</template>-->
|
||||
</avue-crud>
|
||||
<menberview ref="menberviewref"></menberview>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getList,
|
||||
// remove,
|
||||
// update,
|
||||
// add,
|
||||
exportMenber,
|
||||
getNotice,
|
||||
} from "@/api/base/store/menber.js";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
form: {
|
||||
memberLevelName: '',
|
||||
userLevelSpend: '',
|
||||
userLevelName: '',
|
||||
},
|
||||
query: {},
|
||||
loading: true,
|
||||
page: {
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
total: 0,
|
||||
},
|
||||
selectionList: [],
|
||||
option: {
|
||||
indexLabel: '序号',
|
||||
indexWidth: 200,
|
||||
searchLabelWidth: 120,
|
||||
labelWidth: 120,
|
||||
calcHeight: 30,
|
||||
dialogWidth: '70%',
|
||||
tip: false,
|
||||
searchShow: true,
|
||||
searchMenuSpan: 6,
|
||||
border: true,
|
||||
index: false,
|
||||
addBtn: false,
|
||||
editBtn: false,
|
||||
delBtn: false,
|
||||
viewBtn: true,
|
||||
selection: false,
|
||||
excelBtn: false,
|
||||
dialogClickModal: false,
|
||||
card: true,
|
||||
column: [
|
||||
{
|
||||
type: 'input',
|
||||
label: '会员登录id',
|
||||
prop: 'userId',
|
||||
span: 12,
|
||||
search: true,
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '会员昵称',
|
||||
prop: 'userNickname',
|
||||
span: 12,
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '新增会员时间',
|
||||
prop: 'createTime',
|
||||
span: 12,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '消费金额',
|
||||
prop: 'userLevelSpend',
|
||||
span: 12,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '用户等级',
|
||||
prop: 'userLevelName',
|
||||
span: 12,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '会员等级 ',
|
||||
prop: 'memberLevelName',
|
||||
span: 12,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '店铺名称',
|
||||
prop: 'storeName',
|
||||
span: 12,
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '会员手机号码',
|
||||
prop: 'userAccount',
|
||||
span: 12,
|
||||
search: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
data: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 导出
|
||||
async exportExcel(){
|
||||
exportMenber().then(
|
||||
(data) => {
|
||||
const blob = new Blob([data])
|
||||
const downloadElement = document.createElement('a')
|
||||
const href = window.URL.createObjectURL(blob) //创建下载的链接
|
||||
downloadElement.href = href
|
||||
downloadElement.download = decodeURIComponent('会员列表.xlsx') //下载后文件名
|
||||
document.body.appendChild(downloadElement)
|
||||
downloadElement.click() //点击下载
|
||||
document.body.removeChild(downloadElement) //下载完成移除元素
|
||||
window.URL.revokeObjectURL(href) //释放掉blob对象
|
||||
}
|
||||
)
|
||||
},
|
||||
openView(row) {
|
||||
this.$refs.menberviewref.init(row)
|
||||
},
|
||||
searchReset() {
|
||||
this.query = {}
|
||||
this.onLoad(this.page)
|
||||
},
|
||||
searchChange(params, done) {
|
||||
if (params.releaseTimeRange) {
|
||||
params.startDate = params.releaseTimeRange[0]
|
||||
params.endDate = params.releaseTimeRange[1]
|
||||
}
|
||||
this.query = params
|
||||
this.page.currentPage = 1
|
||||
this.onLoad(this.page, params)
|
||||
done()
|
||||
},
|
||||
selectionChange(list) {
|
||||
this.selectionList = list
|
||||
},
|
||||
selectionClear() {
|
||||
this.selectionList = []
|
||||
this.$refs.crud.toggleSelection()
|
||||
},
|
||||
beforeOpen(done, type) {
|
||||
if (['edit', 'view'].includes(type)) {
|
||||
getNotice({store_member_id:this.form.store_member_id,storeId:this.form.storeId}).then((res) => {
|
||||
if (res.status!= 200){
|
||||
this.$message.error(res.msg)
|
||||
done(false)
|
||||
}
|
||||
this.form = res.data
|
||||
this.form.memberLevelName = res.data.shopStoreMemberLevel.memberLevelName
|
||||
this.form.userLevelName = res.data.shopStoreMemberLevel.userLevelName
|
||||
this.form.userLevelSpend = res.data.shopStoreMemberLevel.userLevelSpend
|
||||
})
|
||||
}
|
||||
done()
|
||||
},
|
||||
currentChange(currentPage) {
|
||||
this.page.currentPage = currentPage
|
||||
},
|
||||
sizeChange(pageSize) {
|
||||
this.page.pageSize = pageSize
|
||||
},
|
||||
refreshChange() {
|
||||
this.onLoad(this.page, this.query)
|
||||
},
|
||||
onLoad(page, params = {}) {
|
||||
let values = {
|
||||
...params,
|
||||
pageNum:page.currentPage,
|
||||
pageSize:page.pageSize,
|
||||
...this.query,
|
||||
};
|
||||
this.loading = true;
|
||||
getList({...values}).then((res) => {
|
||||
let resdata = res;
|
||||
console.log(resdata);
|
||||
this.page.total = resdata.total;
|
||||
this.data = resdata.records;
|
||||
this.loading = false
|
||||
this.selectionClear();
|
||||
});
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
Loading…
Reference in New Issue
Block a user