用户修改

This commit is contained in:
@fawn-nine
2023-10-19 18:04:56 +08:00
parent efcf6d45db
commit 9c662d1d9d
11 changed files with 630 additions and 229 deletions

View File

@@ -5,11 +5,19 @@
<el-form-item label="姓名" prop="name">
<el-input v-model="dataForm.name" placeholder="姓名"></el-input>
</el-form-item>
<el-form-item label="电话" prop="tel">
<el-input v-model="dataForm.tel" placeholder="电话"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password" v-if="!dataForm.id">
<el-input v-model="dataForm.password" placeholder="密码"></el-input>
</el-form-item>
<div v-if="dataForm.id">
<el-form-item label="年龄" prop="age">
<el-input v-model="dataForm.age" placeholder="年龄"></el-input>
</el-form-item>
<el-form-item label="性别" prop="sex">
<!-- <el-input v-model="dataForm.sex" placeholder="性别"></el-input> -->
<el-radio v-model="dataForm.sex" :label=2>保密</el-radio>
<el-radio v-model="dataForm.sex" :label=1></el-radio>
<el-radio v-model="dataForm.sex" :label=0></el-radio>
</el-form-item>
@@ -26,17 +34,14 @@
</el-form-item>
<el-form-item label="昵称" prop="nickname">
<el-input v-model="dataForm.nickname" placeholder="昵称"></el-input>
</el-form-item>
<el-form-item label="电话" prop="tel">
<el-input v-model="dataForm.tel" placeholder="电话"></el-input>
</el-form-item>
</el-form-item>
<!-- <el-form-item label="密码" prop="password">
<el-input v-model="dataForm.password" placeholder="密码"></el-input>
</el-form-item> -->
<el-form-item label="会员类型" prop="vip">
<!-- <el-form-item label="会员类型" prop="vip">
<el-input v-model="dataForm.vip" placeholder="0-普通 1-vip"></el-input>
</el-form-item>
<el-form-item label="vip 有效期" prop="vipValidtime">
</el-form-item> -->
<!-- <el-form-item label="vip 有效期" prop="vipValidtime">
<el-date-picker
v-model="dataForm.vipValidtime"
type="datetime"
@@ -44,8 +49,8 @@
align="right"
:picker-options="pickerOptions">
</el-date-picker>
<!-- <el-input v-model="dataForm.vipValidtime" placeholder="vip 有效期"></el-input> -->
</el-form-item>
<el-input v-model="dataForm.vipValidtime" placeholder="vip 有效期"></el-input>
</el-form-item> -->
<el-form-item label="花生币" prop="peanutCoin">
<!-- <el-input v-model="dataForm.peanutCoin" placeholder="花生币"></el-input> -->
<el-input-number disabled v-model="dataForm.peanutCoin" label="花生币"></el-input-number>
@@ -65,6 +70,7 @@
<el-form-item label="删除标记" prop="delFlag">
<el-input v-model="dataForm.delFlag" placeholder="删除标记"></el-input>
</el-form-item> -->
</div>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="handlereset">取消</el-button>
@@ -82,11 +88,33 @@ export default {
visible: false,
dialogVisible: false,
fileList: [],
pickerOptions:{
shortcuts: [{
text: '今天',
onClick(picker) {
picker.$emit('pick', new Date());
}
}, {
text: '昨天',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24);
picker.$emit('pick', date);
}
}, {
text: '一周前',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', date);
}
}]
},
dataForm: {
id: 0,
name: '',
name: '',
age: '',
sex: '',
sex: 2,
avatar: '',
nickname: '',
tel: '',
@@ -101,9 +129,12 @@ export default {
delFlag: '',
},
dataRule: {
// name: [
// { required: true, message: '姓名不能为空', trigger: 'blur' }
// ],
name: [
{ required: true, message: '姓名不能为空', trigger: 'blur' }
],
password: [
{ required: true, message: '密码不能为空', trigger: 'blur' }
],
// age: [
// { required: true, message: '年龄不能为空', trigger: 'blur' }
// ],
@@ -116,9 +147,19 @@ export default {
// nickname: [
// { required: true, message: '昵称不能为空', trigger: 'blur' }
// ],
// tel: [
// { required: true, message: '电话不能为空', trigger: 'blur' }
// ],
tel: [
{ required: true, message: '电话不能为空', trigger: 'blur' },
{
validator: function(rule, value, callback) {
if (/^1[34578]\d{9}$/.test(value) == false) {
callback(new Error("手机号格式错误"));
} else {
callback();
}
},
trigger: "blur"
}
],
// password: [
// { required: true, message: '密码不能为空', trigger: 'blur' }
// ],
@@ -164,7 +205,7 @@ export default {
if (data && data.code === 0) {
this.dataForm.name = data.user.name
this.dataForm.age = data.user.age
this.dataForm.sex = data.user.sex
this.dataForm.sex = data.user.sex
this.dataForm.avatar = data.user.avatar
this.dataForm.nickname = data.user.nickname
this.dataForm.tel = data.user.tel
@@ -177,7 +218,7 @@ export default {
this.dataForm.createTime = data.user.createTime
this.dataForm.updateTime = data.user.updateTime
this.dataForm.delFlag = data.user.delFlag
if (data.user.avatar != "") {
if (data.user.avatar && data.user.avatar != "") {
var img = { name: '', url: data.user.avatar }
var attr = []
attr.push(img)
@@ -191,28 +232,38 @@ export default {
// 表单提交
dataFormSubmit() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl(`/book/user/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
let myData = {}
if(!this.dataForm.id){
myData = {
'name': this.dataForm.name,
'tel': this.dataForm.tel,
}
}else{
myData = {
'id': this.dataForm.id,
'name': this.dataForm.name,
'age': this.dataForm.age,
'sex': this.dataForm.sex,
'avatar': this.dataForm.avatar,
'nickname': this.dataForm.nickname,
'tel': this.dataForm.tel,
'password': this.dataForm.password,
'vip': this.dataForm.vip,
'vipValidtime': this.dataForm.vipValidtime,
'peanutCoin': this.dataForm.peanutCoin,
'readTime': this.dataForm.readTime,
'lastLoginTime': this.dataForm.lastLoginTime,
'createTime': this.dataForm.createTime,
'updateTime': this.dataForm.updateTime,
'delFlag': this.dataForm.delFlag
})
// 'password': this.dataForm.password,
// 'vip': this.dataForm.vip,
// 'vipValidtime': this.dataForm.vipValidtime,
// 'peanutCoin': this.dataForm.peanutCoin,
// 'readTime': this.dataForm.readTime,
// 'lastLoginTime': this.dataForm.lastLoginTime,
// 'createTime': this.dataForm.createTime,
// 'updateTime': this.dataForm.updateTime,
// 'delFlag': this.dataForm.delFlag
}
}
console.log('myData', myData)
if (valid) {
this.$http({
url: this.$http.adornUrl(`/book/user/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData(myData)
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
@@ -230,7 +281,7 @@ export default {
})
}
})
},
},
handlePictureCardPreview(file) {
this.dataForm.avatar = file.url;
this.dialogVisible = true;
@@ -246,7 +297,10 @@ export default {
handleRemove(file) {
this.dataForm.avatar = '';
},
handlereset(){
handlereset(){
// console.log('关闭了')
this.$refs['dataForm'].resetFields()
this.dataForm.password = ''
this.fileList = [],
this.visible = false
},

View File

@@ -16,29 +16,31 @@
style="width: 100%;">
<el-table-column type="selection" header-align="center" align="center" width="50">
</el-table-column>
<el-table-column label="序号" width="70" align="center">
<!-- <el-table-column label="序号" width="70" align="center">
<template slot-scope="scope">
{{ (pageIndex - 1) * pageSize + scope.$index + 1 }}
</template>
</el-table-column>
<!-- <el-table-column
</el-table-column> -->
<el-table-column
prop="id"
header-align="center"
align="center"
label="">
</el-table-column> -->
label="用户ID">
</el-table-column>
<el-table-column prop="name" header-align="center" align="center" label="姓名">
</el-table-column>
<el-table-column prop="age" header-align="center" align="center" label="年龄">
</el-table-column>
<!-- <el-table-column prop="age" header-align="center" align="center" label="年龄">
</el-table-column> -->
<el-table-column prop="sex" header-align="center" align="center" label="性别">
<template slot-scope="scope">
{{scope.row.sex == 0 ? '女':'男'}}
<span v-if="scope.row.sex == 0">女</span><span v-if="scope.row.sex == 1">男</span><span v-if="scope.row.sex == 2">保密</span>
</template>
</el-table-column>
<el-table-column prop="avatar" header-align="center" align="center" label="头像">
<template slot-scope="scope">
<img v-if="scope.row.avatar != ''" :src="scope.row.avatar" width="50" height="50" class="tableImg" />
<img v-if="scope.row.avatar && scope.row.avatar != ''" :src="scope.row.avatar" width="50" height="50" class="tableImg" />
<img v-else src="../../../../static/img/morenAvavter.png" width="50" height="50" class="tableImg">
</template>
</el-table-column>
<el-table-column prop="nickname" header-align="center" align="center" label="昵称">
@@ -51,12 +53,12 @@
align="center"
label="密码">
</el-table-column> -->
<el-table-column prop="vip" header-align="center" align="center" label="会员类型">
<!-- <el-table-column prop="vip" header-align="center" align="center" label="会员类型">
<template slot-scope="scope">
<span v-if="scope.row.vip == '1'">VIP</span>
<span v-if="scope.row.vip == '0'">普通会员</span>
</template>
</el-table-column>
</el-table-column> -->
<!-- <el-table-column
prop="vipValidtime"
header-align="center"
@@ -75,8 +77,8 @@
</el-table-column>
<el-table-column prop="createTime" header-align="center" align="center" label="创建时间">
</el-table-column>
<el-table-column prop="updateTime" header-align="center" align="center" label="更新时间">
</el-table-column>
<!-- <el-table-column prop="updateTime" header-align="center" align="center" label="更新时间">
</el-table-column> -->
<!-- <el-table-column
prop="delFlag"
header-align="center"
@@ -84,20 +86,30 @@
label="删除标记">
</el-table-column> -->
<el-table-column fixed="right" header-align="center" align="center" width="150" label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="ck(scope.row)">/扣天医币</el-button>
<router-link :to="{ path: 'user-point-memery', query: {'tel':scope.row.tel, 'id':scope.row.id} }">
<el-button type="text" size="small">/扣天医币记录</el-button>
</router-link>
<el-button type="text" size="small" @click="youhui(scope.row)">优惠券列表</el-button>
<br>
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)">删除</el-button>
<el-dropdown>
<span class="el-dropdown-link" style="font-size:12px; color:#17B3A3; cursor: pointer;">
更多操作<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item><el-button type="text" size="small" @click="ck(scope.row)">/扣天医币</el-button></el-dropdown-item>
<el-dropdown-item>
<router-link :to="{ path: 'user-point-memery', query: {'tel':scope.row.tel, 'id':scope.row.id} }">
<el-button type="text" size="small">/扣天医币记录</el-button>
</router-link>
</el-dropdown-item>
<el-dropdown-item><el-button type="text" size="small" @click="youhui(scope.row)">优惠券列表</el-button></el-dropdown-item>
<el-dropdown-item><el-button type="text" size="small" @click="resetPassword(scope.row)">修改密码</el-button></el-dropdown-item>
<!-- <el-dropdown-item divided>蚵仔煎</el-dropdown-item> -->
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<el-pagination @size-change="sizeChangeHandle" @current-change="currentChangeHandle" :current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]" :page-size="pageSize" :total="totalPage"
:page-sizes="[10, 20, 50, 100]" :page-size="pageSize" :total="total"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
@@ -199,6 +211,7 @@
pageIndex: 1,
pageSize: 10,
totalPage: 0,
total:0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false,
@@ -220,23 +233,64 @@
getDataList() {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/book/user/list'),
method: 'get',
params: this.$http.adornParams({
'page': 1,
'limit': 200,
// url: this.$http.adornUrl('/book/user/list'),
url: this.$http.adornUrl('/book/user/getUserList'),
method: 'post',
data: this.$http.adornData({
'page': this.pageIndex,
'limit': this.pageSize,
'key': this.dataForm.key
})
}),
// params: this.$http.adornParams({
// 'page': 1,
// 'limit': this.pageSize,
// 'key': this.dataForm.key
// })
}).then(({
data
}) => {
if (data && data.code === 0) {
this.dataList = data.page.list
this.totalPage = data.page.totalCount
this.dataList = data.user.records
this.totalPage = data.user.pages
this.total = data.user.total
this.dataListLoading = false
}
})
},
// 重置密码
resetPassword(row){
console.log(row,'row')
this.$prompt('请输入新密码', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
// inputPattern: /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
// inputErrorMessage: '邮箱格式不正确'
}).then(({ value }) => {
this.$http({
url: this.$http.adornUrl('/book/user/updateUserPassword'),
method: 'post',
data: this.$http.adornData({
'id':row.id,
'password': value
}),
}).then(({data}) => {
if (data && data.code === 0) {
this.$message.success('修改密码成功')
}
}).catch(({e}) => {
console.log(e,'e')
})
// this.$message({
// type: 'success',
// message: '你的邮箱是: ' + value
// });
}).catch(() => {
// this.$message({
// type: 'info',
// message: '取消输入'
// });
});
},
// 获取优惠券列表
getcourpeList() {
this.$http({