master
271556543@qq.com 3 years ago
parent a82e712f70
commit a57a0b09d9

@ -98,6 +98,16 @@ export default {
createIndexRow(){ createIndexRow(){
return <el-table-column type="index" align="center" fixed="left"></el-table-column> return <el-table-column type="index" align="center" fixed="left"></el-table-column>
}, },
createPage(){
return(
<Page
total={40}
size="small"
show-elevator={true}
show-sizer={true}
class="xy-table-page"></Page>
)
},
toggleRowSelection(row){ toggleRowSelection(row){
this.$nextTick(()=>{ this.$nextTick(()=>{
this.$refs.table.toggleRowSelection(row); this.$refs.table.toggleRowSelection(row);
@ -116,9 +126,9 @@ export default {
mounted() { mounted() {
}, },
render(h) { render(h) {
let {summaryMethod,cellClick,btnWidth,selectClick,height,createIndexRow,tableStyle,treeProps,showSummary,showHeader,$scopedSlots,showIndex,defaultExpandAll,headerCellStyle,headerRowStyle,rowStyle,cellStyle,indent,tableHeight,tableItem,list,deleteClick,editorClick} = this let {createPage,summaryMethod,cellClick,btnWidth,selectClick,height,createIndexRow,tableStyle,treeProps,showSummary,showHeader,$scopedSlots,showIndex,defaultExpandAll,headerCellStyle,headerRowStyle,rowStyle,cellStyle,indent,tableHeight,tableItem,list,deleteClick,editorClick} = this
return ( return (
<div class="table-tree"> <div class="table-tree" style={{ 'position': 'relative' }}>
{ tableItem && tableItem.length>0 ? { tableItem && tableItem.length>0 ?
(<el-table (<el-table
ref="table" ref="table"
@ -281,6 +291,23 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.xy-table-page{
display: flex;
justify-content: right;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
background: rgba(140,140,140,0.6);
z-index: 10;
position: absolute;
bottom: 0;
left: 0;
right: 0;
::v-deep .ivu-page-item{
background: transparent !important;
}
}
</style> </style>

@ -12,22 +12,22 @@
</div> </div>
</div> </div>
</template> </template>
<template v-slot:logo_id> <template v-slot:logo>
<div class="xy-table-item"> <div class="xy-table-item">
<div class="xy-table-item-label"> <div class="xy-table-item-label">
图片logo 图片logo
</div> </div>
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<div v-if="form.logo_id" style="position: relative;"> <div v-if="form.logo.url" style="position: relative;">
<img :src="form.logo_id" class="avatar"> <img :src="form.logo.url" class="avatar">
<Button <Button
shape="circle" shape="circle"
icon="md-close" icon="md-close"
type="error" type="error"
size="small" size="small"
class="img__delete" class="img__delete"
@click="form.logo_id = ''"></Button> @click="form.logo = {id:'',url:''}"></Button>
</div> </div>
<el-upload <el-upload
v-else v-else
@ -35,7 +35,7 @@
:limit="1" :limit="1"
class="avatar-uploader" class="avatar-uploader"
list-type="picture-card" list-type="picture-card"
action="/api/admin/upload-file" :action="action"
:show-file-list="true" :show-file-list="true"
:on-error="uploadFail" :on-error="uploadFail"
:on-success="uploadSuccess" :on-success="uploadSuccess"
@ -116,22 +116,22 @@
</div> </div>
</div> </div>
</template> </template>
<template v-slot:certificate_id> <template v-slot:certificate>
<div class="xy-table-item"> <div class="xy-table-item">
<div class="xy-table-item-label"> <div class="xy-table-item-label">
营业执照 营业执照
</div> </div>
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<div v-if="form.certificate_id" style="position: relative;"> <div v-if="form.certificate.url" style="position: relative;">
<img :src="form.certificate_id" class="avatar"> <img :src="form.certificate.url" class="avatar">
<Button <Button
shape="circle" shape="circle"
icon="md-close" icon="md-close"
type="error" type="error"
size="small" size="small"
class="img__delete" class="img__delete"
@click="form.certificate_id = ''"></Button> @click="form.certificate = {id:'',url:''}"></Button>
</div> </div>
<el-upload <el-upload
v-else v-else
@ -139,7 +139,7 @@
:limit="1" :limit="1"
class="avatar-uploader" class="avatar-uploader"
list-type="picture-card" list-type="picture-card"
action="/api/admin/upload-file" :action="action"
:show-file-list="true" :show-file-list="true"
:on-error="uploadFail" :on-error="uploadFail"
:on-success="uploadSuccess1" :on-success="uploadSuccess1"
@ -185,17 +185,24 @@ export default {
id:'', id:'',
type:'add', type:'add',
isShow:false, isShow:false,
action:`${process.env.VUE_APP_BASE_API}api/admin/upload-file`,
form:{ form:{
name:"",// name:"",//
logo_id:'',// logo:{
id:'',
url:''
},//
address:"", address:"",
slogan:'', slogan:'',
boss:'', boss:'',
boss_phone:'', boss_phone:'',
contact:'', contact:'',
phone:'', phone:'',
certificate_id:'',// certificate:{
id:'',
url:''
},//
business_number:'',// business_number:'',//
state:1, state:1,
username:"",// username:"",//
@ -242,11 +249,13 @@ export default {
}, },
uploadSuccess(response){ uploadSuccess(response){
console.log(response) console.log(response)
this.form.logo_id = response.id this.form.logo.id = response.id
this.form.logo.url = response.url
}, },
uploadSuccess1(response){ uploadSuccess1(response){
console.log(response) console.log(response)
this.form.certificate_id = response.id this.form.certificate.id = response.id
this.form.certificate.url = response.url
}, },
uploadBefore(file){ uploadBefore(file){
console.log(file) console.log(file)
@ -261,7 +270,21 @@ export default {
submit(){ submit(){
if(this.type === 'add'){ if(this.type === 'add'){
store(this.form).then(res => { store({
name:this.form.name,
logo_id:this.form.logo.id,
address:this.form.address,
slogan:this.form.slogan,
boss:this.form.boss,
boss_phone:this.form.boss_phone,
contact:this.form.contact,
phone:this.form.phone,
certificate_id:this.form.certificate.id,
business_number:this.form.business_number,
username:this.form.username,
password:this.form.password,
state:1
}).then(res => {
this.isShow = false this.isShow = false
this.$emit('refresh') this.$emit('refresh')
Message({ Message({
@ -275,14 +298,14 @@ export default {
save({ save({
id:this.id, id:this.id,
name:this.form.name, name:this.form.name,
logo_id:this.form.logo_id, logo_id:this.form.logo.id,
address:this.form.address, address:this.form.address,
slogan:this.form.slogan, slogan:this.form.slogan,
boss:this.form.boss, boss:this.form.boss,
boss_phone:this.form.boss_phone, boss_phone:this.form.boss_phone,
contact:this.form.contact, contact:this.form.contact,
phone:this.form.phone, phone:this.form.phone,
certificate_id:this.form.certificate_id, certificate_id:this.form.certificate.id,
business_number:this.form.business_number, business_number:this.form.business_number,
username:this.form.username, username:this.form.username,
password:this.form.password password:this.form.password
@ -304,14 +327,14 @@ export default {
show({id:this.id}).then(res => { show({id:this.id}).then(res => {
this.form = { this.form = {
name:res.name,// name:res.name,//
logo_id:res.logo_id,// logo: { id:res.logo_id,url:res.logo?.url },//
address:res.address, address:res.address,
slogan:res.slogan, slogan:res.slogan,
boss:res.boss, boss:res.boss,
boss_phone:res.boss_phone, boss_phone:res.boss_phone,
contact:res.contact, contact:res.contact,
phone:res.phone, phone:res.phone,
certificate_id:res.certificate_id,// certificate: { id:res.certificate_id,url:res.certificate?.url },//
business_number:res.business_number,// business_number:res.business_number,//
state:res.state, state:res.state,
username:res.username,// username:res.username,//
@ -333,8 +356,8 @@ export default {
transform: scale(0.8,0.8); transform: scale(0.8,0.8);
position: absolute; position: absolute;
top: 1px; top: 4px;
right: 12px; right: 4px;
} }
::v-deep .avatar-uploader .el-upload { ::v-deep .avatar-uploader .el-upload {
border: 1px dashed #d9d9d9; border: 1px dashed #d9d9d9;

@ -123,7 +123,7 @@
:limit="1" :limit="1"
class="avatar-uploader" class="avatar-uploader"
list-type="picture-card" list-type="picture-card"
action="/api/admin/upload-file" :action="action"
:show-file-list="true" :show-file-list="true"
:on-error="uploadFail" :on-error="uploadFail"
:on-success="uploadSuccess" :on-success="uploadSuccess"
@ -167,6 +167,7 @@ export default {
id:'', id:'',
type:'add', type:'add',
isShow:false, isShow:false,
action:`${process.env.VUE_APP_BASE_API}api/admin/upload-file`,
types:[{label:'首页轮播图',value:0},{label:'商品轮播图',value:1}], types:[{label:'首页轮播图',value:0},{label:'商品轮播图',value:1}],
states:[ states:[

@ -4,10 +4,29 @@
<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> <div class="selector">
<Input style="width: 200px; margin-right: 10px" placeholder="关键字搜索" /> <div class="selector-item">
<Button type="primary">查询</Button> <div class="selector-item__label">关键词</div>
<Button type="primary" style="margin-left: 10px" @click="$refs['addMember'].isShow = true,$refs['addMember'].type = 'add'">新增会员</Button> <Input v-model="select.keywords" clearable style="width: 200px;" placeholder="关键字搜索" />
</div>
<div class="selector-item">
<div class="selector-item__label">区域</div>
<Select clearable v-model="select.area" style="width: 130px;" placeholder="选择区域搜索">
<Option v-for="item in areas" :value="item">{{item}}</Option>
</Select>
</div>
<div class="selector-item">
<div class="selector-item__label">建卡医院</div>
<Input clearable v-model="select.hospital" style="width: 200px;" placeholder="建卡医院搜索"/>
</div>
<div class="selector-item">
<Button type="primary" @click="getMembers"></Button>
</div>
<div class="selector-item">
<Button type="primary" @click="$refs['addMember'].isShow = true,$refs['addMember'].type = 'add'">新增会员</Button>
</div>
</div> </div>
</slot> </slot>
</lx-header> </lx-header>
@ -37,8 +56,12 @@ export default {
return { return {
select:{ select:{
pageSize:10, pageSize:10,
pageIndex:1 pageIndex:1,
keywords:"",
area:"",
hospital:""
}, },
areas:['高新区','吴中区','姑苏区','相城区','吴江区','工业园区','相城区'],
total:0, total:0,
list:[], list:[],
@ -103,7 +126,10 @@ export default {
async getMembers(){ async getMembers(){
const res = await index({ const res = await index({
page_size:this.select.pageSize, page_size:this.select.pageSize,
page:this.select.pageIndex page:this.select.pageIndex,
keyword:this.select.keywords,
hospital:this.select.hospital,
area:this.select.area
}) })
this.total = res.total this.total = res.total
this.list = res.data this.list = res.data
@ -134,4 +160,22 @@ export default {
</script> </script>
<style scoped lang="scss"> <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