mirror of
https://gitee.com/ZhongBangKeJi/crmeb_java.git
synced 2026-05-02 23:01:25 +08:00
12.31开源admin代码更新
This commit is contained in:
@@ -1,65 +1,56 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-if="dialogVisible"
|
||||
title="用户等级"
|
||||
:visible.sync="dialogVisible"
|
||||
width="500px"
|
||||
:before-close="handleClose">
|
||||
<el-form :model="formValidate" :rules="rules" ref="formValidate" label-width="100px" class="demo-ruleForm" v-loading="loading">
|
||||
:before-close="handleClose" >
|
||||
<el-form :model="user" :rules="rules" ref="user" label-width="100px" class="demo-ruleForm" v-loading="loading">
|
||||
<el-form-item label="等级名称" prop="name">
|
||||
<el-input v-model="formValidate.name" placeholder="请输入等级名称"></el-input>
|
||||
<el-input v-model="user.name" placeholder="请输入等级名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="等级" prop="grade">
|
||||
<el-input v-model.number="formValidate.grade" placeholder="请输入等级"></el-input>
|
||||
<el-input v-model.number="user.grade" placeholder="请输入等级"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="享受折扣(%)" prop="discount">
|
||||
<el-input-number :min="0" :max="100" step-strictly v-model="formValidate.discount" placeholder="请输入享受折扣"></el-input-number>
|
||||
<el-input-number :min="0" :max="100" step-strictly v-model="user.discount" placeholder="请输入享受折扣"></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="经验" prop="experience">
|
||||
<el-input-number v-model.number="formValidate.experience" placeholder="请输入经验" :max="999999" step-strictly></el-input-number>
|
||||
<el-input-number v-model.number="user.experience" placeholder="请输入经验" :min="0" step-strictly></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="图标" prop="icon">
|
||||
<div class="upLoadPicBox" @click="modalPicTap('1', 'icon')">
|
||||
<div v-if="formValidate.icon" class="pictrue"><img :src="formValidate.icon"></div>
|
||||
<div v-if="user.icon" class="pictrue"><img :src="user.icon"></div>
|
||||
<div v-else-if="formValidate.icon" class="pictrue"><img :src="formValidate.icon"></div>
|
||||
<div v-else class="upLoad">
|
||||
<i class="el-icon-camera cameraIconfont" />
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<!--<el-form-item label="用户背景" required prop="image">-->
|
||||
<!--<div class="upLoadPicBox" @click="modalPicTap('1', 'image')">-->
|
||||
<!--<div v-if="formValidate.image" class="pictrue"><img :src="formValidate.image"></div>-->
|
||||
<!--<div v-else class="upLoad">-->
|
||||
<!--<i class="el-icon-camera cameraIconfont" />-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
<!--</el-form-item>-->
|
||||
<el-form-item label="是否显示" required>
|
||||
<el-radio-group v-model="formValidate.isShow">
|
||||
<el-radio :label="true" class="radio">显示</el-radio>
|
||||
<el-radio :label="false">隐藏</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="resetForm('formValidate')">取 消</el-button>
|
||||
<el-button type="primary" @click="submitForm('formValidate')">确 定</el-button>
|
||||
<el-button @click="resetForm('user')">取 消</el-button>
|
||||
<el-button type="primary" @click="submitForm('formValidate')" v-hasPermi="['admin:system:user:level:update','admin:system:user:level:save']">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { levelSaveApi, levelInfoApi, levelUpdateApi } from '@/api/user'
|
||||
import {Debounce} from '@/utils/validate'
|
||||
const obj = {
|
||||
name:'',
|
||||
grade: 1,
|
||||
discount: '',
|
||||
icon: '',
|
||||
image: '',
|
||||
isShow: true,
|
||||
id: null
|
||||
}
|
||||
export default {
|
||||
name: "CreatGrade",
|
||||
props:{
|
||||
'user':Object
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
@@ -85,16 +76,18 @@
|
||||
],
|
||||
image: [
|
||||
{ required: true, message: '请上传用户背景', trigger: 'change' }
|
||||
]
|
||||
],
|
||||
}
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
// 点击商品图
|
||||
modalPicTap (tit, num) {
|
||||
const _this = this
|
||||
const _this = this
|
||||
this.$modalUpload(function(img) {
|
||||
tit==='1'&& num === 'icon' ? _this.formValidate.icon = img[0].sattDir : _this.formValidate.image = img[0].sattDir
|
||||
this.$set(_this.user,'icon', _this.formValidate.icon);
|
||||
this.$set(_this.user,'isShow', false);
|
||||
},tit , 'user')
|
||||
},
|
||||
info(id) {
|
||||
@@ -107,14 +100,26 @@
|
||||
})
|
||||
},
|
||||
handleClose() {
|
||||
this.dialogVisible = false
|
||||
this.$refs['formValidate'].resetFields();
|
||||
this.$nextTick(() => {
|
||||
this.$refs.user.resetFields();
|
||||
})
|
||||
this.dialogVisible = false;
|
||||
// this.user = Object.assign({}, '')
|
||||
},
|
||||
submitForm(formName) {
|
||||
this.$refs[formName].validate((valid) => {
|
||||
submitForm:Debounce(function(formName) {
|
||||
this.$refs.user.validate((valid) => {
|
||||
if (valid) {
|
||||
this.loading = true
|
||||
this.formValidate.id ? levelUpdateApi({id:this.formValidate.id}, this.formValidate).then(res => {
|
||||
let data = {
|
||||
discount:this.user.discount,
|
||||
experience:this.user.experience,
|
||||
grade:this.user.grade,
|
||||
icon:this.user.icon,
|
||||
id:this.user.id,
|
||||
isShow:this.user.isShow,
|
||||
name:this.user.name
|
||||
};
|
||||
this.user.id ? levelUpdateApi(this.user.id, data).then(res => {
|
||||
this.$message.success('编辑成功')
|
||||
this.loading = false
|
||||
this.handleClose()
|
||||
@@ -122,22 +127,28 @@
|
||||
this.$parent.getList()
|
||||
}).catch(() => {
|
||||
this.loading = false
|
||||
}): levelSaveApi(this.formValidate).then(res => {
|
||||
}): levelSaveApi(this.user).then(res => {
|
||||
this.$message.success('添加成功')
|
||||
this.loading = false
|
||||
this.handleClose()
|
||||
this.formValidate = Object.assign({},obj)
|
||||
this.$parent.getList()
|
||||
}).catch(() => {
|
||||
this.loading = false
|
||||
this.formValidate = Object.assign({},obj)
|
||||
})
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
}),
|
||||
resetForm(formName) {
|
||||
this.dialogVisible = false
|
||||
this.$refs[formName].resetFields();
|
||||
|
||||
// this[formName] = {};
|
||||
this.$nextTick(() => {
|
||||
this.$refs.user.resetFields();
|
||||
})
|
||||
this.dialogVisible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,23 +2,7 @@
|
||||
<div class="divBox">
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<div class="container">
|
||||
<el-form :inline="true" size="small">
|
||||
<el-form-item label="用户状态:" class="mr10">
|
||||
<el-select v-model="tableFrom.isShow" clearable placeholder="请选择用户状态" @change="seachList" class="selWidth">
|
||||
<el-option label="全部" value=""></el-option>
|
||||
<el-option label="显示" value="true"></el-option>
|
||||
<el-option label="隐藏" value="false"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="等级名称:">
|
||||
<el-input v-model="tableFrom.name" placeholder="请输入等级名称" class="selWidth" clearable>
|
||||
<el-button slot="append" icon="el-icon-search" @click="seachList" size="small"/>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-button type="primary" class="mr10" @click="add" size="small">添加用户等级</el-button>
|
||||
<el-button type="primary" class="mr10" @click="add" size="small" v-hasPermi="['admin:system:user:level:save']">添加用户等级</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
@@ -45,11 +29,11 @@
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="等级名称"
|
||||
min-width="150"
|
||||
min-width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="grade"
|
||||
label="等级"
|
||||
prop="experience"
|
||||
label="经验"
|
||||
min-width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
@@ -58,46 +42,37 @@
|
||||
min-width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
label="是否显示"
|
||||
min-width="150"
|
||||
label="状态"
|
||||
min-width="100"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<template slot-scope="scope" v-if="checkPermi(['admin:system:user:level:use'])">
|
||||
<el-switch
|
||||
v-model="scope.row.isShow"
|
||||
:active-value="true"
|
||||
:inactive-value="false"
|
||||
active-text="显示"
|
||||
inactive-text="隐藏"
|
||||
@change="onchangeIsShow(scope.row)"
|
||||
active-text="开启"
|
||||
inactive-text="关闭"
|
||||
disabled
|
||||
@click.native="onchangeIsShow(scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" min-width="120" fixed="right" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="edit(scope.row.id)" class="mr10">编辑</el-button>
|
||||
<el-button type="text" size="small" @click="handleDelete(scope.row.id, scope.$index)">删除</el-button>
|
||||
<el-button type="text" size="small" @click="edit(scope.row)" class="mr10" v-hasPermi="['admin:system:user:level:update']">编辑</el-button>
|
||||
<el-button type="text" size="small" @click="handleDelete(scope.row.id, scope.$index)" v-hasPermi="['admin:system:user:level:delete']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="block">
|
||||
<el-pagination
|
||||
:page-sizes="[20, 40, 60, 80]"
|
||||
:page-size="tableFrom.limit"
|
||||
:current-page="tableFrom.page"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="tableData.total"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="pageChange"
|
||||
/>
|
||||
</div>
|
||||
</el-card>
|
||||
<creat-grade ref="grades"></creat-grade>
|
||||
<creat-grade ref="grades" :user="userInfo"></creat-grade>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { userListApi, groupListApi, levelListApi, levelUseApi, levelDeleteApi } from '@/api/user'
|
||||
import creatGrade from './creatGrade'
|
||||
import { checkPermi } from "@/utils/permission"; // 权限判断函数
|
||||
export default {
|
||||
name: 'Grade',
|
||||
filters: {
|
||||
@@ -114,16 +89,10 @@
|
||||
data() {
|
||||
return {
|
||||
listLoading: true,
|
||||
userInfo:{},
|
||||
tableData: {
|
||||
data: [],
|
||||
total: 0
|
||||
},
|
||||
tableFrom: {
|
||||
isShow: '',
|
||||
name: '',
|
||||
page: 1,
|
||||
limit: 20,
|
||||
isDel: 0
|
||||
total: 0,
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -131,57 +100,68 @@
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
checkPermi,
|
||||
seachList() {
|
||||
this.tableFrom.page = 1
|
||||
this.getList()
|
||||
},
|
||||
add() {
|
||||
this.$refs.grades.dialogVisible = true
|
||||
this.userInfo = {};
|
||||
},
|
||||
edit(id) {
|
||||
// this.$refs.grades.info(id)
|
||||
this.userInfo = id;
|
||||
this.$refs.grades.dialogVisible = true
|
||||
this.$refs.grades.info(id)
|
||||
},
|
||||
// 列表
|
||||
getList() {
|
||||
this.listLoading = true
|
||||
levelListApi(this.tableFrom).then(res => {
|
||||
this.tableData.data = res.list
|
||||
this.tableData.total = res.total
|
||||
levelListApi().then(res => {
|
||||
this.tableData.data = res
|
||||
this.listLoading = false
|
||||
}).catch(() => {
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
pageChange(page) {
|
||||
this.tableFrom.page = page
|
||||
this.getList()
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.tableFrom.limit = val
|
||||
this.getList()
|
||||
},
|
||||
// 删除
|
||||
handleDelete(id, idx) {
|
||||
this.$modalSure('删除吗?所有用户已经关联的数据都会清除').then(() => {
|
||||
levelDeleteApi({id:id}).then(() => {
|
||||
this.$modalSure('删除吗?删除会导致对应用户等级数据清空,请谨慎操作!').then(() => {
|
||||
levelDeleteApi(id).then(() => {
|
||||
this.$message.success('删除成功')
|
||||
this.tableData.data.splice(idx, 1)
|
||||
})
|
||||
})
|
||||
},
|
||||
onchangeIsShow(row) {
|
||||
levelUseApi({id: row.id, value:row.isShow}).then(() => {
|
||||
this.$message.success('修改成功')
|
||||
this.getList()
|
||||
}).catch(()=>{
|
||||
if(row.isShow == false){
|
||||
row.isShow = !row.isShow
|
||||
})
|
||||
levelUseApi({id: row.id, isShow:row.isShow}).then(() => {
|
||||
this.$message.success('修改成功')
|
||||
this.getList()
|
||||
}).catch(()=>{
|
||||
row.isShow = !row.isShow
|
||||
})
|
||||
}else{
|
||||
this.$modalSure('该操作会导致对应用户等级隐藏,请谨慎操作').then(() => {
|
||||
row.isShow = !row.isShow
|
||||
levelUseApi({id: row.id, isShow:row.isShow}).then(() => {
|
||||
this.$message.success('修改成功')
|
||||
this.getList()
|
||||
}).catch(()=>{
|
||||
row.isShow = !row.isShow
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
.el-switch.is-disabled {
|
||||
opacity: 1;
|
||||
}
|
||||
::v-deep .el-switch__label {
|
||||
cursor: pointer !important;;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="divBox">
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<el-button size="small" type="primary" @click="onAdd(null)">{{$route.path.indexOf('group') !== -1?'添加用户分组':'添加用户标签'}}</el-button>
|
||||
<el-button size="small" type="primary" @click="onAdd(null)" v-hasPermi="['admin:user:group:save','admin:user:tag:save']">{{$route.path.indexOf('group') !== -1?'添加用户分组':'添加用户标签'}}</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
@@ -30,8 +30,8 @@
|
||||
<!--/>-->
|
||||
<el-table-column label="操作" min-width="120" fixed="right" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button class="mr10" type="text" size="small" @click="onAdd(scope.row)">编辑</el-button>
|
||||
<el-button type="text" size="small" @click="handleDelete(scope.row.id, scope.$index)" disable>删除</el-button>
|
||||
<el-button class="mr10" type="text" size="small" @click="onAdd(scope.row)" v-hasPermi="['admin:user:group:update','admin:user:tag:update']">编辑</el-button>
|
||||
<el-button type="text" size="small" @click="handleDelete(scope.row.id, scope.$index)" disable v-hasPermi="['admin:user:group:delete','admin:user:tag:delete']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -81,7 +81,7 @@
|
||||
inputErrorMessage: this.$route.path.indexOf('group') !== -1?'请输入分组名称':'请输入标签名称',
|
||||
inputType: 'text',
|
||||
closeOnClickModal: false,
|
||||
inputValue: row ? (this.$route.path.indexOf('group') !== -1?row.groupName:row.name): '' ,
|
||||
inputValue: row ? (this.$route.path.indexOf('group') !== -1?row.groupName:row.name): '',
|
||||
inputPlaceholder: this.$route.path.indexOf('group') !== -1?'请输入分组名称':'请输入标签名称',
|
||||
inputValidator: (value) => { if(!value) return '输入不能为空'}
|
||||
}).then(({value}) => {
|
||||
|
||||
@@ -3,36 +3,12 @@
|
||||
<el-form-item label="用户编号:">
|
||||
<el-input v-model="ruleForm.id" disabled class="selWidth"></el-input>
|
||||
</el-form-item>
|
||||
<!--<el-form-item label="真实姓名:">-->
|
||||
<!--<el-input v-model="ruleForm.realName" class="selWidth"></el-input>-->
|
||||
<!--</el-form-item>-->
|
||||
<!--<el-form-item label="手机号码:" prop="phone">-->
|
||||
<!--<el-input v-model.number="ruleForm.phone" class="selWidth" readonly></el-input>-->
|
||||
<!--</el-form-item>-->
|
||||
<!--<el-form-item label="生日:">-->
|
||||
<!--<el-date-picker-->
|
||||
<!--v-model="ruleForm.birthday"-->
|
||||
<!--type="date"-->
|
||||
<!--class="selWidth"-->
|
||||
<!--placeholder="选择日期"-->
|
||||
<!--format="yyyy 年 MM 月 dd 日"-->
|
||||
<!--value-format="yyyy-MM-dd">-->
|
||||
<!--</el-date-picker>-->
|
||||
<!--</el-form-item>-->
|
||||
<!--<el-form-item label="身份证号:">-->
|
||||
<!--<el-input v-model="ruleForm.cardId" class="selWidth"></el-input>-->
|
||||
<!--</el-form-item>-->
|
||||
<el-form-item label="用户地址:">
|
||||
<el-input v-model="ruleForm.addres" class="selWidth"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户备注:">
|
||||
<el-input v-model="ruleForm.mark" type="textarea" class="selWidth"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户等级:">
|
||||
<el-select v-model="ruleForm.level" placeholder="请选择" class="selWidth" clearable filterable>
|
||||
<el-option :value="item.id" v-for="(item, index) in levelList" :key="index" :label="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户分组:">
|
||||
<el-select v-model="ruleForm.groupId" placeholder="请选择" class="selWidth" clearable filterable>
|
||||
<el-option :value="item.id" v-for="(item, index) in groupList" :key="index" :label="item.groupName"></el-option>
|
||||
@@ -56,7 +32,7 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
|
||||
<el-button type="primary" @click="submitForm('ruleForm')" v-hasPermi="['admin:user:update']">提交</el-button>
|
||||
<el-button @click="resetForm('ruleForm')">取消</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@@ -64,6 +40,7 @@
|
||||
|
||||
<script>
|
||||
import { groupListApi, levelListApi, tagListApi, userInfoApi, userUpdateApi } from '@/api/user'
|
||||
import {Debounce} from '@/utils/validate'
|
||||
const defaultObj = {
|
||||
// birthday: '',
|
||||
// cardId: '',
|
||||
@@ -137,11 +114,11 @@
|
||||
},
|
||||
// 等级列表
|
||||
levelLists () {
|
||||
levelListApi({ page: 1, limit: 9999, isShow: 1, isDel: 0}).then(async res => {
|
||||
levelListApi().then(async res => {
|
||||
this.levelList = res.list
|
||||
})
|
||||
},
|
||||
submitForm(formName) {
|
||||
submitForm:Debounce(function(formName) {
|
||||
this.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
this.ruleForm.tagId=this.labelData.join(',')
|
||||
@@ -154,7 +131,7 @@
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
}),
|
||||
resetForm(formName) {
|
||||
this.$refs[formName].resetFields();
|
||||
this.$emit('resetForm');
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="divBox">
|
||||
<div class="divBox relative">
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<el-tabs v-model="loginType" @tab-click="getList(1)">
|
||||
@@ -11,16 +11,9 @@
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
|
||||
<el-col v-bind="grid">
|
||||
<el-form-item label="用户搜索:">
|
||||
<el-input v-model="userFrom.keywords" placeholder="请输入姓名" clearable class="selWidth"/>
|
||||
<el-input v-model="userFrom.keywords" placeholder="请输入姓名或手机号" clearable class="selWidth"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!--<el-col :span="24">-->
|
||||
<!--<el-col v-bind="grid">-->
|
||||
<!--<el-form-item label="会员搜索:">-->
|
||||
<!--<el-input v-model="userFrom.keywords" placeholder="请输入" clearable class="selWidth"/>-->
|
||||
<!--</el-form-item>-->
|
||||
<!--</el-col>-->
|
||||
<!--</el-col>-->
|
||||
</el-col>
|
||||
<template v-if="collapse">
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
|
||||
@@ -61,8 +54,52 @@
|
||||
<el-cascader :options="addresData" :props="propsCity" filterable v-model="address" @change="handleChange" clearable class="selWidth"></el-cascader>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="grid">
|
||||
<el-form-item label="消费情况:">
|
||||
<el-select v-model="userFrom.payCount" placeholder="请选择" class="selWidth" clearable>
|
||||
<el-option value="" label="全部"></el-option>
|
||||
<el-option value="0" label="0"></el-option>
|
||||
<el-option value="1" label="1+"></el-option>
|
||||
<el-option value="2" label="2+"></el-option>
|
||||
<el-option value="3" label="3+"></el-option>
|
||||
<el-option value="4" label="4+"></el-option>
|
||||
<el-option value="5" label="5+"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="grid">
|
||||
<el-form-item label="时间选择:" class="timeBox">
|
||||
<el-date-picker
|
||||
v-model="timeVal"
|
||||
align="right"
|
||||
unlink-panels
|
||||
value-format="yyyy-MM-dd"
|
||||
format="yyyy-MM-dd"
|
||||
size="small"
|
||||
type="daterange"
|
||||
placement="bottom-end"
|
||||
placeholder="自定义时间"
|
||||
class="selWidth"
|
||||
:picker-options="pickerOptions"
|
||||
@change="onchangeTime"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col>
|
||||
<!-- <el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
|
||||
|
||||
</el-col> -->
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
|
||||
<el-col v-bind="grid">
|
||||
<el-form-item label="访问情况:">
|
||||
<el-select v-model="userFrom.accessType" placeholder="请选择" class="selWidth" clearable>
|
||||
<el-option :value="0" label="全部"></el-option>
|
||||
<el-option :value="1" label="首次访问"></el-option>
|
||||
<el-option :value="2" label="时间段访问过"></el-option>
|
||||
<el-option :value="3" label="时间段未访问"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="grid">
|
||||
<el-form-item label="性别:">
|
||||
<el-radio-group v-model="userFrom.sex" type="button" class="selWidth">
|
||||
@@ -100,51 +137,9 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
|
||||
<el-col v-bind="grid">
|
||||
<el-form-item label="访问情况:">
|
||||
<el-select v-model="userFrom.accessType" placeholder="请选择" class="selWidth" clearable>
|
||||
<el-option :value="0" label="全部"></el-option>
|
||||
<el-option :value="1" label="首次访问"></el-option>
|
||||
<el-option :value="2" label="时间段访问过"></el-option>
|
||||
<el-option :value="3" label="时间段未访问"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="grid">
|
||||
<el-form-item label="消费情况:">
|
||||
<el-select v-model="userFrom.payCount" placeholder="请选择" class="selWidth" clearable>
|
||||
<el-option value="" label="全部"></el-option>
|
||||
<el-option value="0" label="0"></el-option>
|
||||
<el-option value="1" label="1+"></el-option>
|
||||
<el-option value="2" label="2+"></el-option>
|
||||
<el-option value="3" label="3+"></el-option>
|
||||
<el-option value="4" label="4+"></el-option>
|
||||
<el-option value="5" label="5+"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
|
||||
<el-col v-bind="grid">
|
||||
<el-form-item label="时间选择:" class="timeBox">
|
||||
<el-date-picker
|
||||
v-model="timeVal"
|
||||
align="right"
|
||||
unlink-panels
|
||||
value-format="yyyy-MM-dd"
|
||||
format="yyyy-MM-dd"
|
||||
size="small"
|
||||
type="daterange"
|
||||
placement="bottom-end"
|
||||
placeholder="自定义时间"
|
||||
class="selWidth"
|
||||
:picker-options="pickerOptions"
|
||||
@change="onchangeTime"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col>
|
||||
<!-- <el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
|
||||
|
||||
</el-col> -->
|
||||
</template>
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6" class="text-right userFrom">
|
||||
<el-form-item>
|
||||
@@ -163,10 +158,11 @@
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-button class="mr10" size="small" @click="onSend">发送优惠券</el-button>
|
||||
<!--<el-button v-show="loginType === 'wechat'" size="mini" class="mr10" @click="sendNews">发送文章</el-button>-->
|
||||
<el-button class="mr10" size="small" @click="setBatch('group')">批量设置分组</el-button>
|
||||
<el-button class="mr10" size="small" @click="setBatch('label')">批量设置标签</el-button>
|
||||
<div class="btn_bt">
|
||||
<el-button class="mr10" size="small" @click="onSend" type="primary" v-hasPermi="['admin:coupon:user:receive']">发送优惠券</el-button>
|
||||
<el-button class="mr10" size="small" @click="setBatch('group')">批量设置分组</el-button>
|
||||
<el-button class="mr10" size="small" @click="setBatch('label')">批量设置标签</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-table
|
||||
ref="table"
|
||||
@@ -187,23 +183,14 @@
|
||||
<span>{{ props.row.createTime | filterEmpty }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="近次访问:">
|
||||
<span>{{ props.row.updateTime | filterEmpty }}</span>
|
||||
<span>{{ props.row.lastLoginTime | filterEmpty }}</span>
|
||||
</el-form-item>
|
||||
<!--<el-form-item label="身份证号:">-->
|
||||
<!--<span>{{ props.row.cardId | filterEmpty }}</span>-->
|
||||
<!--</el-form-item>-->
|
||||
<el-form-item label="手机号:">
|
||||
<span>{{ props.row.phone | filterEmpty }}</span>
|
||||
</el-form-item>
|
||||
<!--<el-form-item label="真实姓名:">-->
|
||||
<!--<span>{{ props.row.realName | filterEmpty }}</span>-->
|
||||
<!--</el-form-item>-->
|
||||
<el-form-item label="标签:">
|
||||
<span>{{ props.row.tagName | filterEmpty }}</span>
|
||||
</el-form-item>
|
||||
<!--<el-form-item label="生日:">-->
|
||||
<!--<span>{{ props.row.birthday | filterEmpty }}</span>-->
|
||||
<!--</el-form-item>-->
|
||||
<el-form-item label="地址:">
|
||||
<span>{{ props.row.addres | filterEmpty }}</span>
|
||||
</el-form-item>
|
||||
@@ -222,7 +209,8 @@
|
||||
label="ID"
|
||||
min-width="80"
|
||||
/>
|
||||
<el-table-column label="头像" min-width="80">
|
||||
<el-table-column
|
||||
label="头像" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<div class="demo-image__preview">
|
||||
<el-image
|
||||
@@ -235,7 +223,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="姓名"
|
||||
min-width="130"
|
||||
min-width="160"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{scope.row.nickname | filterEmpty }} | {{scope.row.sex | sexFilter}}</span>
|
||||
@@ -287,19 +275,20 @@
|
||||
/>
|
||||
<el-table-column label="操作" min-width="130" fixed="right" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" @click="editUser(scope.row.uid)" size="small">编辑</el-button>
|
||||
<el-button type="text" @click="editUser(scope.row.uid)" size="small" v-hasPermi="['admin:user:infobycondition']">编辑</el-button>
|
||||
<el-dropdown trigger="click">
|
||||
<span class="el-dropdown-link">
|
||||
更多<i class="el-icon-arrow-down el-icon--right" />
|
||||
</span>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item @click.native="onDetails(scope.row.uid)">账户详情</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="editPoint(scope.row.uid)">积分余额</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="setBatch('group',scope.row)">设置分组</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="setBatch('label',scope.row)">设置标签</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="setPhone(scope.row)">修改手机号</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="setExtension(scope.row)">修改上级推广人</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="clearSpread(scope.row)" v-if="scope.row.spreadUid && scope.row.spreadUid>0">清除上级推广人</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="onDetails(scope.row.uid)" v-if="checkPermi(['admin:user:topdetail'])">账户详情</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="editPoint(scope.row.uid)" v-if="checkPermi(['admin:user:operate:founds'])">积分余额</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="setBatch('group',scope.row)" v-if="checkPermi(['admin:user:group'])">设置分组</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="setBatch('label',scope.row)" v-if="checkPermi(['admin:user:tag'])">设置标签</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="setPhone(scope.row)" v-if="checkPermi(['admin:user:update:phone'])">修改手机号</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="onLevel(scope.row.uid,scope.row.level)" v-if="checkPermi(['admin:user:update:level'])">修改用户等级</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="setExtension(scope.row)" v-if="checkPermi(['admin:user:update:spread'])">修改上级推广人</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="clearSpread(scope.row)" v-if="scope.row.spreadUid && scope.row.spreadUid>0 && checkPermi(['admin:retail:spread:clean'])">清除上级推广人</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
@@ -373,7 +362,7 @@
|
||||
:rules="[{ required: true, message: '请选择用户标签', trigger: 'change' }]"
|
||||
v-else
|
||||
>
|
||||
<el-select v-model="dynamicValidateForm.groupId" placeholder="请选择标签" style="width: 80%" filterable multiple>
|
||||
<el-select v-model="dynamicValidateForm.groupId" placeholder="请选择标签" style="width: 80%" filterable>
|
||||
<el-option :value="item.id" v-for="(item, index) in labelLists" :key="index" :label="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -444,6 +433,14 @@
|
||||
:before-close="Close">
|
||||
<user-details ref="userDetails" :uid="uid" v-if="Visible"></user-details>
|
||||
</el-dialog>
|
||||
<!-- 用户等级 -->
|
||||
<el-dialog
|
||||
title="设置"
|
||||
:visible.sync="levelVisible"
|
||||
width="600px"
|
||||
:before-close="Close">
|
||||
<level-edit :levelInfo="levelInfo" :levelList="levelList"></level-edit>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -452,12 +449,15 @@
|
||||
import { spreadClearApi } from '@/api/distribution'
|
||||
import editFrom from './edit'
|
||||
import userDetails from './userDetails'
|
||||
import levelEdit from './level'
|
||||
import userList from '@/components/userList'
|
||||
import * as logistics from '@/api/logistics.js'
|
||||
import Cookies from 'js-cookie'
|
||||
import { checkPermi } from "@/utils/permission"; // 权限判断函数
|
||||
import {Debounce} from '@/utils/validate'
|
||||
export default {
|
||||
name: 'UserIndex',
|
||||
components:{ editFrom, userDetails,userList },
|
||||
components:{ editFrom, userDetails,userList ,levelEdit},
|
||||
filters: {
|
||||
sexFilter(status) {
|
||||
const statusMap = {
|
||||
@@ -479,65 +479,8 @@
|
||||
ruleInline: {},
|
||||
extensionVisible: false,
|
||||
userVisible: false,
|
||||
pickerOptions: {
|
||||
shortcuts: [
|
||||
{
|
||||
text: '今天',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()))
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
},
|
||||
{
|
||||
text: '昨天',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 1)))
|
||||
end.setTime(end.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate())))
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
},
|
||||
{
|
||||
text: '最近7天',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
},
|
||||
{
|
||||
text: '最近30天',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
},
|
||||
{
|
||||
text: '本月',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), 1)))
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
},
|
||||
{
|
||||
text: '本年',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
start.setTime(start.setTime(new Date(new Date().getFullYear(), 0, 1)))
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
levelInfo:'',
|
||||
pickerOptions: this.$timeOptions,
|
||||
loadingBtn: false,
|
||||
PointValidateForm: {
|
||||
integralType: 2,
|
||||
@@ -551,6 +494,7 @@
|
||||
visible: false,
|
||||
userIds: '',
|
||||
dialogVisible: false,
|
||||
levelVisible:false,
|
||||
levelData: [],
|
||||
groupData: [],
|
||||
labelData: [],
|
||||
@@ -604,20 +548,6 @@
|
||||
sm: 24,
|
||||
xs: 24
|
||||
},
|
||||
grid2: {
|
||||
xl: 18,
|
||||
lg: 16,
|
||||
md: 12,
|
||||
sm: 24,
|
||||
xs: 24
|
||||
},
|
||||
grid3: {
|
||||
xl: 8,
|
||||
lg: 12,
|
||||
md: 12,
|
||||
sm: 24,
|
||||
xs: 24
|
||||
},
|
||||
levelList: [],
|
||||
labelLists: [],
|
||||
groupList: [],
|
||||
@@ -636,9 +566,15 @@
|
||||
keyNum: 0,
|
||||
address: [],
|
||||
multipleSelectionAll: [],
|
||||
idKey:'uid'
|
||||
idKey:'uid',
|
||||
uid:'',
|
||||
}
|
||||
},
|
||||
activated(){
|
||||
this.userFrom.keywords = '';
|
||||
this.loginType = '0';
|
||||
this.getList(1);
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
this.groupLists()
|
||||
@@ -647,6 +583,7 @@
|
||||
this.getCityList()
|
||||
},
|
||||
methods: {
|
||||
checkPermi,
|
||||
setPhone(row) {
|
||||
this.$prompt('修改手机号', {
|
||||
confirmButtonText: '确定',
|
||||
@@ -658,7 +595,7 @@
|
||||
closeOnClickModal: false,
|
||||
inputValidator: (value) => {
|
||||
if (!value) return '请填写手机号'
|
||||
if (!/^1[3456789]\d{9}$/.test(value)) return '手机号格式不正确!'
|
||||
// if (!/^1[3456789]\d{9}$/.test(value)) return '手机号格式不正确!'
|
||||
// if(!value) return '输入不能为空'
|
||||
}
|
||||
}).then(({value}) => {
|
||||
@@ -738,15 +675,15 @@
|
||||
this.getList()
|
||||
},
|
||||
// 列表
|
||||
getCityList() {
|
||||
logistics.cityListTree().then(res => {
|
||||
res.forEach((el, index) => {
|
||||
el.child.forEach((cel, j) => {
|
||||
delete cel.child
|
||||
})
|
||||
})
|
||||
async getCityList() {
|
||||
let res = await logistics.cityListTree();
|
||||
//res.forEach((el, index) => {
|
||||
// el.child.forEach((cel, j) => {
|
||||
// delete cel.child
|
||||
// })
|
||||
// })
|
||||
this.addresData = res
|
||||
})
|
||||
// })
|
||||
},
|
||||
// 发送文章
|
||||
sendNews() {
|
||||
@@ -771,19 +708,33 @@
|
||||
},
|
||||
Close() {
|
||||
this.Visible = false
|
||||
this.levelVisible = false;
|
||||
},
|
||||
// 账户详情
|
||||
onDetails(id){
|
||||
this.uid = id
|
||||
this.Visible = true
|
||||
},
|
||||
// 等级
|
||||
onLevel(id,level){
|
||||
var userLevel = new Object();
|
||||
this.levelList.forEach(item=>{
|
||||
if(item.id == level){
|
||||
userLevel.gradeLevel = item.grade;
|
||||
}
|
||||
})
|
||||
userLevel.uid = id;
|
||||
userLevel.level = level;
|
||||
this.levelInfo = userLevel;
|
||||
this.levelVisible = true;
|
||||
},
|
||||
// 积分余额
|
||||
editPoint(id) {
|
||||
this.uid = id
|
||||
this.VisiblePoint = true
|
||||
},
|
||||
// 积分余额
|
||||
submitPointForm(formName){
|
||||
submitPointForm:Debounce(function(formName){
|
||||
this.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
this.PointValidateForm.uid = this.uid
|
||||
@@ -800,7 +751,7 @@
|
||||
return false
|
||||
}
|
||||
})
|
||||
},
|
||||
}),
|
||||
// 积分余额
|
||||
handlePointClose() {
|
||||
this.VisiblePoint = false
|
||||
@@ -920,9 +871,9 @@
|
||||
},
|
||||
// 等级列表
|
||||
levelLists () {
|
||||
levelListApi({ page: 1, limit: 9999}).then(async res => {
|
||||
this.levelList = res.list
|
||||
localStorage.setItem('levelKey', JSON.stringify(res.list))
|
||||
levelListApi().then(async res => {
|
||||
this.levelList = res
|
||||
localStorage.setItem('levelKey', JSON.stringify(res))
|
||||
})
|
||||
},
|
||||
// 列表
|
||||
@@ -944,6 +895,7 @@
|
||||
}).catch(() => {
|
||||
this.listLoading = false
|
||||
})
|
||||
this.checkedCities = this.$cache.local.has('user_stroge') ? this.$cache.local.getJSON('user_stroge') : this.checkedCities;
|
||||
},
|
||||
// 设置选中的方法
|
||||
setSelectRow() {
|
||||
@@ -1039,7 +991,7 @@
|
||||
}).catch(()=>{
|
||||
row.isShow = !row.isShow
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1093,4 +1045,11 @@
|
||||
font-size: 12px;
|
||||
color: #1682e6;
|
||||
}
|
||||
.btn_bt{
|
||||
border-top:1px dashed #ccc;
|
||||
padding-top: 20px;
|
||||
}
|
||||
.relative{
|
||||
position: relative;
|
||||
}
|
||||
</style>
|
||||
|
||||
92
admin/src/views/user/list/level.vue
Normal file
92
admin/src/views/user/list/level.vue
Normal file
@@ -0,0 +1,92 @@
|
||||
<template>
|
||||
<el-form :model="ruleForm" ref="ruleForm" label-width="100px" class="demo-ruleForm" >
|
||||
<el-form-item>
|
||||
<el-alert title="请勿频繁更改,以免计算产生混乱!" type="warning"></el-alert>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户等级" label-width="100px">
|
||||
<el-select v-model="ruleForm.levelId" clearable placeholder="请选择" @change="currentSel">
|
||||
<el-option
|
||||
v-for="item in levelList"
|
||||
:key="item.grade"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="扣除经验" label-width="100px" v-if="grade =='' ? false : grade < levelInfo.gradeLevel">
|
||||
<el-switch v-model="ruleForm.isSub"></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="resetForm('ruleForm')">取消</el-button>
|
||||
<el-button type="primary" @click="submitForm('ruleForm')">确定</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
<script>
|
||||
import { userLevelUpdateApi} from '@/api/user'
|
||||
import {Debounce} from '@/utils/validate'
|
||||
export default {
|
||||
props:{
|
||||
levelInfo:{
|
||||
type:Object,
|
||||
default:{},
|
||||
},
|
||||
levelList:{
|
||||
type:Array,
|
||||
default:[]
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
grade:'',
|
||||
levelStatus:false,
|
||||
ruleForm: {
|
||||
isSub: false,
|
||||
levelId:"",
|
||||
uid:this.levelInfo.uid
|
||||
},
|
||||
};
|
||||
},
|
||||
created(){
|
||||
this.ruleForm.levelId = this.levelInfo.level?Number(this.levelInfo.level):''
|
||||
},
|
||||
watch: {
|
||||
levelInfo(val){
|
||||
this.ruleForm.uid = val.uid || 0;
|
||||
this.ruleForm.levelId = this.levelInfo.level?Number(this.levelInfo.level):val.levelId;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
submitForm:Debounce(function(formName) {
|
||||
this.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
userLevelUpdateApi(this.ruleForm).then(res=>{
|
||||
this.$message.success('编辑成功');
|
||||
this.$parent.$parent.getList();
|
||||
this.$parent.$parent.levelVisible = false;
|
||||
this.$refs[formName].resetFields()
|
||||
this.grade = '';
|
||||
})
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}),
|
||||
currentSel(){
|
||||
this.levelList.forEach(item=>{
|
||||
if(item.id == this.ruleForm.levelId){
|
||||
this.grade = item.grade;
|
||||
}
|
||||
})
|
||||
},
|
||||
resetForm(formName) {
|
||||
this.$nextTick(() => {
|
||||
this.$refs[formName].resetFields();
|
||||
this.grade = '';
|
||||
})
|
||||
this.$parent.$parent.levelVisible = false
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="acea-row row-middle" v-if="psInfo">
|
||||
<div class="avatar mr15"><img :src="psInfo.user.avatar"></div>
|
||||
<div class="acea-row row-middle border_bottom pb-24" v-if="psInfo">
|
||||
<div class="avatar mr20"><img :src="psInfo.user.avatar"></div>
|
||||
<div class="dashboard-workplace-header-tip">
|
||||
<p class="dashboard-workplace-header-tip-title" v-text="psInfo.user.nickname || '-'"></p>
|
||||
<div class="dashboard-workplace-header-tip-desc">
|
||||
<span class="dashboard-workplace-header-tip-desc-sp">余额: {{ psInfo.balance }}</span>
|
||||
<span class="dashboard-workplace-header-tip-desc-sp">总计订单: {{ psInfo.allOrderCount }}</span>
|
||||
<span class="dashboard-workplace-header-tip-desc-sp">总消费金额: {{ psInfo.allConsumeCount }}</span>
|
||||
<span class="dashboard-workplace-header-tip-desc-sp pb-1">余额: {{ psInfo.balance }}</span>
|
||||
<span class="dashboard-workplace-header-tip-desc-sp pb-1">总计订单: {{ psInfo.allOrderCount }}</span>
|
||||
<span class="dashboard-workplace-header-tip-desc-sp pb-1">总消费金额: {{ psInfo.allConsumeCount }}</span>
|
||||
<span class="dashboard-workplace-header-tip-desc-sp">积分: {{ psInfo.integralCount }}</span>
|
||||
<span class="dashboard-workplace-header-tip-desc-sp">本月订单: {{ psInfo.mothOrderCount }}</span>
|
||||
<span class="dashboard-workplace-header-tip-desc-sp">本月消费金额: {{ psInfo.mothConsumeCount }}</span>
|
||||
@@ -27,11 +27,12 @@
|
||||
</el-menu>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-table :data="tableData.data" class="tabNumWidth" size="mini" v-loading="loading" max-height="400">
|
||||
<el-table :data="tableData.data" class="tabNumWidth" v-loading="loading" max-height="400">
|
||||
<el-table-column
|
||||
:prop="item.key"
|
||||
:label="item.title"
|
||||
width="item.minWidth"
|
||||
:show-overflow-tooltip="true"
|
||||
v-for="(item, index) in columns" :key="index"
|
||||
/>
|
||||
</el-table>
|
||||
@@ -196,7 +197,7 @@
|
||||
},
|
||||
{
|
||||
title: '签到时间',
|
||||
key: 'createDay',
|
||||
key: 'createTime',
|
||||
minWidth: 120
|
||||
},
|
||||
{
|
||||
@@ -295,11 +296,19 @@
|
||||
},
|
||||
pageChange(page) {
|
||||
this.tableFrom.page = page
|
||||
this.getInfo()
|
||||
if(this.tableFrom.type === '1'){
|
||||
this.integral()
|
||||
}else{
|
||||
this.getInfo()
|
||||
}
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.tableFrom.limit = val
|
||||
this.getInfo()
|
||||
if(this.tableFrom.type === '1'){
|
||||
this.integral()
|
||||
}else{
|
||||
this.getInfo()
|
||||
}
|
||||
},
|
||||
getHeader() {
|
||||
topdetailApi({userId : this.uid}).then(res => {
|
||||
@@ -312,8 +321,8 @@
|
||||
|
||||
<style scoped lang="scss">
|
||||
.avatar{
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
margin-left: 18px;
|
||||
@@ -339,8 +348,10 @@
|
||||
margin-top: -12px;
|
||||
&-title {
|
||||
font-size: 13px;
|
||||
color: #000000;
|
||||
margin-bottom: 12px;
|
||||
font-weight: 600;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
line-height: 18px;
|
||||
padding: 10px 0 10px;
|
||||
}
|
||||
|
||||
&-desc {
|
||||
@@ -376,4 +387,16 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.pb-1{
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
.mr20{
|
||||
margin: 0 20px;
|
||||
}
|
||||
.border_bottom{
|
||||
border-bottom: 1px solid #E7EAEC;
|
||||
}
|
||||
.pb-24{
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user