刘翔宇-旅管家 3 years ago
parent 478e916e01
commit cc7ffefad1

@ -49,6 +49,10 @@ export default {
{ {
prop:'level', prop:'level',
label:'排序' label:'排序'
},
{
prop:'id',
label:'id'
} }
] ]
} }

@ -466,7 +466,7 @@
async getMerchants() { async getMerchants() {
const res = await merchantIndex({ const res = await merchantIndex({
page: 1, page: 1,
pageSize: 999 page_size: 999
}) })
//console.log(res) //console.log(res)
this.merchants = res?.data this.merchants = res?.data

@ -49,7 +49,7 @@
</div> </div>
</template> </template>
</xy-selectors> </xy-selectors>
<Button type="primary" @click="getProducts"></Button> <Button type="primary" @click="searchProducts"></Button>
<Button type="primary" @click="$refs['addProduct'].isShow = true,$refs['addProduct'].type = 'add'" style="margin-left: 10px;">新增</Button> <Button type="primary" @click="$refs['addProduct'].isShow = true,$refs['addProduct'].type = 'add'" style="margin-left: 10px;">新增</Button>
</div> </div>
<!-- <div class="selector">--> <!-- <div class="selector">-->

@ -1,194 +1,223 @@
<template> <template>
<div style="padding: 0 20px"> <div style="padding: 0 20px">
<div ref="lxHeader"> <div ref="lxHeader">
<lx-header icon="md-apps" text="会员管理" style="margin-bottom: 10px; border: 0px; margin-top: 15px"> <lx-header icon="md-apps" text="会员管理" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<div slot="content"></div> <div slot="content"></div>
<slot> <slot>
<div class="selector"> <div class="selector">
<div class="selector-item"> <div class="selector-item">
<div class="selector-item__label">关键词</div> <div class="selector-item__label">关键词</div>
<Input v-model="select.keywords" clearable style="width: 200px;" placeholder="关键字搜索" /> <Input v-model="select.keywords" clearable style="width: 200px;" placeholder="关键字搜索" />
</div> </div>
<div class="selector-item"> <div class="selector-item">
<div class="selector-item__label">区域</div> <div class="selector-item__label">区域</div>
<Select clearable v-model="select.area" style="width: 130px;" placeholder="选择区域搜索"> <Select clearable v-model="select.area" style="width: 130px;" placeholder="选择区域搜索">
<Option v-for="item in areas" :value="item">{{item}}</Option> <Option v-for="item in areas" :value="item">{{item}}</Option>
</Select> </Select>
</div> </div>
<div class="selector-item"> <div class="selector-item">
<div class="selector-item__label">建卡医院</div> <div class="selector-item__label">建卡医院</div>
<Input clearable v-model="select.hospital" style="width: 200px;" placeholder="建卡医院搜索"/> <Input clearable v-model="select.hospital" style="width: 200px;" placeholder="建卡医院搜索" />
</div> </div>
<div class="selector-item">
<div class="selector-item"> <el-checkbox v-model="select.is_phone"></el-checkbox>
<Button type="primary" @click="getMembers"></Button> </div>
</div>
<div class="selector-item">
<Button type="primary" @click="$refs['addMember'].isShow = true,$refs['addMember'].type = 'add'">新增会员</Button>
</div>
<div class="selector-item"> <div class="selector-item">
<Button type="primary" @click="exportExel"></Button> <Button type="primary" @click="doSearch"></Button>
</div> </div>
</div> <div class="selector-item">
</slot> <Button type="primary"
</lx-header> @click="$refs['addMember'].isShow = true,$refs['addMember'].type = 'add'">新增会员</Button>
</div> </div>
<div class="selector-item">
<xy-table :total="total" @pageSizeChange="pageSizeChange" @pageIndexChange="pageChange" :list="list" :table-item="table" @editor="editorShow" @delete="deleteMember"></xy-table> <Button type="primary" @click="exportExel"></Button>
</div>
<addMember ref="addMember" @refresh="getMembers"></addMember> </div>
</div> </slot>
</template> </lx-header>
</div>
<script>
import {index,destroy} from '@/api/member' <xy-table :total="total" @pageSizeChange="pageSizeChange" @pageIndexChange="pageChange" :list="list"
import {parseTime} from "@/utils" :table-item="table" @editor="editorShow" @delete="deleteMember"></xy-table>
import {download} from '@/utils/downloadRequest'
<addMember ref="addMember" @refresh="getMembers"></addMember>
import addMember from './component/addMember' </div>
import { Message } from 'element-ui' </template>
export default {
components:{ <script>
addMember import {
}, index,
data() { destroy
return { } from '@/api/member'
select:{ import {
pageSize:10, parseTime
pageIndex:1, } from "@/utils"
keywords:"", import {
area:"", download
hospital:"" } from '@/utils/downloadRequest'
},
areas:["吴中区", "吴江区", "姑苏区", "工业园区", "高新区", "相城区", "昆山", "常熟", "张家港", "太仓"], import addMember from './component/addMember'
import {
total:0, Message
list:[], } from 'element-ui'
table:[ export default {
{ components: {
prop:'name', addMember
label:'姓名', },
width:180, data() {
sortable:false, return {
fixed:'left' select: {
}, pageSize: 10,
{ pageIndex: 1,
prop:'phone', keywords: "",
label:'电话', area: "",
width:220 hospital: "",
}, is_phone: true
{ },
prop:'due_date', areas: ["吴中区", "吴江区", "姑苏区", "工业园区", "高新区", "相城区", "昆山", "常熟", "张家港", "太仓"],
label:'预产期',
width: 200 total: 0,
}, list: [],
{ table: [{
prop:'area', prop: 'name',
label:'所属区域', label: '姓名',
width: 160, width: 180,
}, sortable: false,
{ fixed: 'left'
prop:'address', },
label:'住址', {
align:'left', prop: 'phone',
minWidth: 300 label: '电话',
}, width: 220
{ },
prop:'hospital', {
label:'建卡医院', prop: 'due_date',
width: 200 label: '预产期',
}, width: 200
{ },
prop:'promotion', {
label:'推广人员', prop: 'area',
width:140, label: '所属区域',
customFn:(row)=>{ width: 160,
return (<Tag color={row.promotion == 1 ? 'success' : 'error'}>{row.promotion == 1 ? '是' : '否'}</Tag>) },
} {
}, prop: 'address',
{ label: '住址',
prop:'created_at', align: 'left',
label:'注册日期', minWidth: 300
width:200, },
formatter:(cell,data,value)=>{ {
return parseTime(new Date(value),'{y}-{m}-{d}') prop: 'hospital',
} label: '建卡医院',
} width: 200
] },
} {
}, prop: 'promotion',
methods: { label: '推广人员',
pageSizeChange(e){ width: 140,
customFn: (row) => {
this.select.pageSize = e return ( < Tag color = {
this.doSearch(); row.promotion == 1 ? 'success' : 'error'
}, } > {
doSearch(){ row.promotion == 1 ? '是' : '否'
this.select.pageIndex = 1 } < /Tag>)
this.getMembers() }
}, },
pageChange(e){ {
this.select.pageIndex = e prop: 'created_at',
this.getMembers() label: '注册日期',
}, width: 200,
formatter: (cell, data, value) => {
async getMembers(){ return parseTime(new Date(value), '{y}-{m}-{d}')
const res = await index({ }
page_size:this.select.pageSize, }
page:this.select.pageIndex, ]
keyword:this.select.keywords, }
hospital:this.select.hospital, },
area:this.select.area methods: {
}) pageSizeChange(e) {
this.total = res.total
this.list = res.data this.select.pageSize = e
}, this.doSearch();
},
editorShow(row){ doSearch() {
this.$refs['addMember'].id = row.id this.select.pageIndex = 1
this.$refs['addMember'].type = 'editor' this.getMembers()
this.$refs['addMember'].isShow = true },
}, pageChange(e) {
deleteMember(row){ this.select.pageIndex = e
destroy({ this.getMembers()
id:row.id },
}).then(res => {
Message({ async getMembers() {
type:'success', const res = await index({
message:'删除会员成功' page_size: this.select.pageSize,
}) page: this.select.pageIndex,
this.getMembers() keyword: this.select.keywords,
}) hospital: this.select.hospital,
}, area: this.select.area,
is_phone: this.select.is_phone ? 1 : ""
exportExel(){ })
download('/api/admin/member/index','get',{is_export:1},'用户列表.xlsx') this.total = res.total
} this.list = res.data
}, },
mounted() {
this.getMembers() editorShow(row) {
} this.$refs['addMember'].id = row.id
this.$refs['addMember'].type = 'editor'
} this.$refs['addMember'].isShow = true
</script> },
deleteMember(row) {
<style scoped lang="scss"> destroy({
.selector{ id: row.id
display: flex; }).then(res => {
flex-wrap: wrap; Message({
align-items: center; type: 'success',
align-content: center; message: '删除会员成功'
&-item{ })
display: flex; this.getMembers()
align-items: center; })
align-content: center; },
margin-top: 6px; exportExel() {
margin-right: 10px; download('/api/admin/member/index', 'get', {
is_export: 1,
&__label{ keyword: this.select.keywords,
word-break: keep-all; hospital: this.select.hospital,
} area: this.select.area,
} is_phone: this.select.is_phone ? 1 : ""
} }, '用户列表.xlsx')
}
},
mounted() {
this.getMembers()
}
}
</script>
<style scoped lang="scss">
.selector {
display: flex;
flex-wrap: wrap;
align-items: center;
align-content: center;
&-item {
display: flex;
align-items: center;
align-content: center;
margin-top: 6px;
margin-right: 10px;
&__label {
word-break: keep-all;
}
}
}
</style> </style>

Loading…
Cancel
Save