sadjv3_admin/src/views/user/vipPrivilege.vue

245 lines
7.5 KiB
Vue
Raw Normal View History

2024-06-05 19:13:04 +08:00
<template>
<div>
<div style="float: right;margin-right:2%;">
<el-button style='margin: 10px 0;' :disabled="!isAuth('bannerList:add')" size="mini" type="primary"
icon="document" @click="addNotice">添加会员特权</el-button>
</div>
<el-table v-loading="tableDataLoading" :data="tableData.list">
<el-table-column fixed prop="memberId" label="编号" width="50">
</el-table-column>
<el-table-column prop="memberImg" label="图片">
<template slot-scope="scope">
  <img :src="scope.row.memberImg" width="60" height="60" />
</template>
</el-table-column>
<el-table-column prop="memberName" label="特权名称">
</el-table-column>
<el-table-column prop="sort" label="排序">
</el-table-column>
<el-table-column label="操作" width="180">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('bannerList:update')"
@click="amendBanner(scope.$index, scope.row)">修改
</el-button>
<el-button size="mini" type="danger" :disabled="!isAuth('bannerList:delete')" @click="deletes(scope.row)">删除
</el-button>
</template>
</el-table-column>
</el-table>
<div style="text-align: center;margin-top: 10px;">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:page-sizes="[10, 20, 30, 40]" :page-size="limit" :current-page="page" layout="total,sizes, prev, pager, next,jumper"
:total="tableData.totalCount">
</el-pagination>
</div>
<el-dialog :title="title" :visible.sync="dialogFormVisible" center>
<div style="margin-bottom: 10px;display: flex;">
<span style="width: 200px;display: inline-block;text-align: right;">图片</span>
<div style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload
class="avatar-uploader"
v-model="memberImg"
:action="uploadUrl"
:show-file-list="false"
:on-success="handleAvatarSuccess"
>
<img v-if="memberImg" :src="memberImg" class="avatar" style="border-radius: 6px;width: 148px;height: 148px;"/>
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</div>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">名称</span>
<el-input style="width:50%;" v-model="memberName" placeholder="请输入名称"></el-input>
</div>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">排序</span>
<el-input style="width:50%;" v-model="sort" placeholder="请输入排序" onkeyup="value=value.replace(/^(0+)|[^\d]+/g,'')"></el-input>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="addNoticeTo()"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { serverPaths } from '@/utils/enumData'
export default {
data() {
return {
uploadUrl: serverPaths.uploadUrl,
page:1,
limit:10,
tableDataLoading: true,
dialogFormVisible:false,
tableData: [],
memberName:'',
memberImg:'',
memberId:'',
sort:'',
title:'添加'
}
},
methods: {
// 获取数据列表
dataSelect() {
this.tableDataLoading = true
this.$http({
url: this.$http.adornUrl('member/selectMemberPage'),
method: 'get',
params: this.$http.adornParams({
'page': this.page,
'limit': this.limit
})
}).then(({
data
}) => {
if (data && data.code === 0) {
console.log('会员列表',data)
this.tableDataLoading = false
let returnData = data.data;
this.tableData = returnData;
}
})
},
//上传成功
handleAvatarSuccess(file) {
this.memberImg= file.data
},
addNotice(){
this.dialogFormVisible = true
},
handleCurrentChange(val){
this.page = val
this.dataSelect()
},
handleSizeChange(val){
this.limit = val
this.dataSelect()
},
// 添加banner图
addNoticeTo(){
if (this.memberImg == '') {
this.$notify({
title: '提示',
duration: 1800,
message: '请上传图片',
type: 'warning'
});
return
}
if (this.memberName == '') {
this.$notify({
title: '提示',
duration: 1800,
message: '请输入名称',
type: 'warning'
});
return
}
this.classify = 1
if(this.title=='添加'){
var url = 'member/insertMember'
}else{
var url = 'member/updateMember'
}
this.$http({
url: this.$http.adornUrl(url),
method: 'post',
data: this.$http.adornData({
'memberImg':this.memberImg,
'memberId':this.memberId,
'memberName':this.memberName,
'sort':this.sort
})
}).then(({data}) => {
this.dialogFormVisible = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.memberImg = ''
this.memberId = ''
this.memberName=''
this.sort = ''
this.title ='添加'
this.dataSelect()
}
})
})
},
// 修改
amendBanner(index,rows,a){
if(a==1){
this.pl = 1
}else{
this.pl = 0
}
this.dialogFormVisible = true
this.id = rows.id
this.memberImg = rows.memberImg
this.memberId = rows.memberId
this.sort = rows.sort
this.memberName = rows.memberName
this.title = '修改'
},
// 修改
amendNoticeTo(){
this.$http({
url: this.$http.adornUrl(`?memberId=${this.memberId}&memberImg=${this.memberImg}&sort=${this.sort}&memberName=${this.memberName}`),
method: 'post',
data: this.$http.adornData({
})
}).then(({data}) => {
this.dialogFormVisible = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.dataSelect()
}
})
})
},
//删除一级
deletes(row) {
let delid = row.memberId
this.$confirm(`确定删除此条信息?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl(`member/deleteMemberById/?memberId=${delid}`),
method: 'post',
data: this.$http.adornData({})
}).then(({
data
}) => {
this.$message({
message: '删除成功',
type: 'success',
duration: 1500,
onClose: () => {
this.dataSelect()
}
})
})
}).catch(() => {})
},
},
mounted() {
this.dataSelect()
}
}
</script>
<style>
</style>