Files
peko-admin-web/src/views/users/UserCheckAdminView.vue

1395 lines
52 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<section class="content">
<div class="box box-primary">
<div class="box-body">
<section class="content-header">
<h1 id="itemTitle"></h1>
</section>
<section class="content">
<div id="toolbar">
<div style="margin-bottom: 6px">
<button id="btnSearch"
class="btn btn-sm btn-primary">查询</button>
搜索根源
<select name="checkType"
id="checkType">
<option value="1">平台号</option>
<option value="2">手机号</option>
<!-- <option value="3">支付宝账号</option>-->
<option value="4">uid</option>
<option value="5">邮箱</option>
</select>
</div>
<textarea name="erbanNoList"
id="erbanNoList"
placeholder="多个搜索号请用逗号隔开"></textarea>
</div>
<div id="table"></div>
</section>
</div>
</div>
</section>
<div class="modal fade"
id="detailModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">x</span></button>
<h4 class="modal-title"
id="modalLabel">用户详细信息</h4>
</div>
<div class="modal-body">
<div class="detail">
<div class="part form-group">
<div class="nick">昵称: <span></span></div>
<div class="partitionId">地区: <span></span></div>
<div class="regionName">国家: <span></span></div>
<div class="erbanNo">平台号: <span></span></div>
<div class="uid">UID: <span></span></div>
<!-- <div class="avatar">头像<img src="" alt="" width="70px" height="70px"></div>-->
</div>
<div class="part form-group">
<div class="gender">性别: <span></span></div>
<div class="phoneAreaCode">手机区号: <span></span></div>
<div class="phone">手机: <span></span></div>
<div class="email">email: <span></span></div>
<div class="birth">出生日期: <span></span></div>
</div>
<div class="part form-group">
<div class="sign">签名: <span></span></div>
<div class="userDesc">自我描述: <span></span></div>
</div>
<div class="part form-group">
<div class="vipLevel">vip等级: <span></span></div>
<div class="exper">财富等级: <span></span></div>
<div class="charm">魅力等级: <span></span></div>
</div>
<div class="part form-group">
<div class="diamondNum">金币数: <span></span></div>
<!-- <div class="crystalNum">水晶数: <span></span></div>-->
<div class="goldNum">钻石数: <span></span></div>
</div>
<div class="part form-group">
<div class="followNum">关注数: <span></span></div>
<div class="fansNum">粉丝数: <span></span></div>
<div class="defUser">账号类型: <span></span></div>
</div>
<!-- <div class="part form-group">
<div class="fortune">财富值: <span></span></div>
<div class="channelType">下载渠道类型: <span></span></div>
</div>-->
<!-- <div class="part form-group">-->
<!-- <div class="alipayAccount">支付宝: <span></span></div>-->
<!-- <div class="alipayAccountName">支付宝账户名: <span></span></div>-->
<!-- </div>-->
<!-- <div class="part form-group">
<div class="ispType">运营商: <span></span></div>
<div class="netType">网络类型: <span></span></div>
<div class="model">手机型号: <span></span></div>
</div>-->
<div class="part form-group">
<div class="ip">最后更新ip: <span></span></div>
<div class="ipRegion">ip地区: <span></span></div>
</div>
<div class="part form-group">
<div class="model">手机型号: <span></span></div>
<div class="os">系统: <span></span></div>
<div class="deviceID">设备号: <span></span></div>
<div class="appVersion">版本号: <span></span></div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
</div>
</div>
</div>
</div>
<div class="modal fade"
id="editModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel2" style="overflow-y: auto;">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">x</span></button>
<h4 class="modal-title"
id="addModalLabel">编辑用户信息</h4>
</div>
<div class="modal-body">
<form id="editUser"
class="form-horizontal">
<input type="hidden"
name="uid"
id="editUid">
<input type="hidden"
name="app"
id="app">
<div class="form-group">
<label for="partitionId"
class="col-sm-3 control-label">选择地区:</label>
<div class="col-sm-7">
<select name="partitionId"
id="partitionId"
class="form-control validate[required]"></select>
</div>
</div>
<div class="form-group">
<label for="regionId"
class="col-sm-3 control-label">选择国家:</label>
<div class="col-sm-7">
<select name="regionId"
id="regionId"
class="form-control validate[required]"></select>
</div>
</div>
<div class="form-group">
<label for="editNick"
class="col-sm-3 control-label">昵称:</label>
<div class="col-sm-7">
<input type="text"
class="form-control validate[required]"
name="nick"
id="editNick">
</div>
<button class="btn btn-warning col-sm-2"
type="button"
id="default_nick">恢复默认</button>
</div>
<div class="form-group">
<label for="editGender"
class="col-sm-3 control-label">性别:</label>
<div class="col-sm-8">
<select name="gender"
class="form-control"
id="editGender">
<option value="1"></option>
<option value="2"></option>
</select>
</div>
</div>
<div class="form-group">
<label for="editPhone"
class="col-sm-3 control-label">手机号:</label>
<div class="col-sm-3 control-label">
<select name="phoneAreaCode"
id="phoneAreaCode"
class="form-control validate[required]"></select>
</div>
<div class="col-sm-5 control-label">
<input type="text"
class="form-control"
name="editPhone"
id="editPhone">
<a href="javascript:void(0)"
id="removePhone">解绑</a>
</div>
</div>
<div class="form-group">
<label for="editEmail"
class="col-sm-3 control-label">邮箱:</label>
<div class="col-sm-8 control-label">
<input type="text"
class="form-control"
name="editEmail"
id="editEmail">
<a href="javascript:void(0)"
id="removeEmail">解绑</a>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">用户头像图:</label>
<div class="col-sm-8">
<img src=""
id="addImgUrl"
style="width:70px;height:70px;"
alt="">
<input type="file"
id="addUploadFile"
name="uploadFile"
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg">
<button class="btn btn-success"
type="button"
id="editUploadBtn">上传</button>
<button class="btn btn-warning"
type="button"
id="default_avatar">恢复默认</button>
<input type="hidden"
id="editAvatar"
name="avatar"
class="form-control validate[required]" />
</div>
</div>
<!-- <div class="form-group">-->
<!-- <label for="alipayAccount" class="col-sm-3 control-label">支付宝账号 :</label>-->
<!-- <div class="col-sm-8">-->
<!-- <input type="text" class="form-control" name="alipayAccount" id="alipayAccount">-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="form-group">-->
<!-- <label for="alipayAccountName" class="col-sm-3 control-label">支付宝账户名:</label>-->
<!-- <div class="col-sm-8">-->
<!-- <input type="text" class="form-control" name="alipayAccountName" id="alipayAccountName">-->
<!-- </div>-->
<!-- </div>-->
<div class="form-group">
<label for="editDefUser"
class="col-sm-3 control-label">账号类型:</label>
<div class="col-sm-8">
<select name="defUser"
class="form-control"
id="editDefUser">
<option value="1">普通账号</option>
<option value="2">官方账号</option>
<option value="3">机器账号</option>
<option value="4">工会账号</option>
</select>
</div>
</div>
<!-- <div class="form-group">
<label for="editDefUser"
class="col-sm-3 control-label">财富等级:</label>
<div class="col-sm-8" style="display: flex;align-items: center;">
<p class="experLevelName" style="margin:0 10px 0 0 !important"></p>
<button class="btn btn-warning"
type="button"
id="modifyWealthLevelBtn">修改</button>
</div>
</div>
<div class="form-group">
<label for="editDefUser"
class="col-sm-3 control-label">魅力等级:</label>
<div class="col-sm-8" style="display: flex;align-items: center;">
<p class="charmLevelName" style="margin:0 10px 0 0 !important"></p>
<button class="btn btn-warning"
type="button"
id="modifyCharmLevelBtn">修改</button>
</div>
</div> -->
<div class="form-group">
<label for="alipayAccountName"
class="col-sm-3 control-label">简介:</label>
<div class="col-sm-8">
<input type="text"
class="form-control"
name="userDesc"
id="userDesc">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">相册:</label>
<table class="table table-bordered table-hover"
id="photoTable">
<tbody id="photoTbody">
</tbody>
</table>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">添加相册:</label>
<div class="col-sm-8">
<img src=""
id="picUrl"
style="width:70px;height:70px;"
alt="">
<input type="file"
id="uploadPhotoFile"
name="uploadPhotoFile"
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg">
<button class="btn btn-success"
type="button"
id="uploadPicBtn">上传</button>
<input type="hidden"
class="form-control validate[required]"
name="imgUrl"
id="imgUrl"
style="width:400px">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否发送通知:</label>
<div class="col-sm-9">
<label class="radio-inline"><input type="radio"
name="sendMsg"
id="needSend"
value="1"
checked></label>
<label class="radio-inline"><input type="radio"
name="sendMsg"
id="notSend"
value="0"></label>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label"> </label>
<div class="col-sm-9"
id="msgDiv">
<textarea type="text"
class="form-control"
name="msg"
id="msg"
maxlength="100"
placeholder="请填写通知内容100字符内"></textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="editSave">保存</button>
</div>
</div>
</div>
</div>
<div class="modal fade"
id="resetPasswdModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel2">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">x</span></button>
<h4 class="modal-title">重置密码</h4>
</div>
<div class="modal-body">
<form id="resetPasswdForm"
class="form-horizontal">
<input type="hidden"
name="uid"
id="resetPasswdUid">
<div class="form-group">
<label for="resetPasswdNick"
class="col-sm-3 control-label">昵称:</label>
<div class="col-sm-8">
<input type="text"
class="form-control"
name="nick"
id="resetPasswdNick"
disabled>
</div>
</div>
<div class="form-group">
<label for="resetPasswdErbanNo"
class="col-sm-3 control-label">平台号:</label>
<div class="col-sm-8">
<input type="text"
class="form-control"
name="erbanNo"
id="resetPasswdErbanNo"
disabled>
</div>
</div>
<div class="form-group">
<label for="resetPasswdNewPasswd"
class="col-sm-3 control-label">新密码 :</label>
<div class="col-sm-8">
<input type="text"
class="form-control"
name="password"
id="resetPasswdNewPasswd">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="resetPasswdSave">保存</button>
</div>
</div>
</div>
</div>
<!-- 修改财富等级 -->
<div class="modal fade"
id="resetWealthLevel"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel2">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">x</span></button>
<h4 class="modal-title"></h4>
</div>
<div class="modal-body">
<form
class="form-horizontal">
<input type="hidden"
name="uid"
id="resetWealthLevelUid">
<div class="form-group">
<label
class="col-sm-3 control-label" style="padding-top: 2px;">当前等级 :</label>
<div class="col-sm-8">
<label id="experLevelNameTxt"></label>
</div>
</div>
<div class="form-group">
<label for="resetPasswdNewPasswd"
class="col-sm-3 control-label">更改等级 :</label>
<div class="col-sm-8">
<input type="text"
class="form-control"
id="resetNewWealthLevel">
</div>
<div class="col-sm-12 control-label tip" style="text-align: center;">(更改等级之后财富等级会变为该等级的起始值)</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="resetExperLevelNameSave">保存</button>
</div>
</div>
</div>
</div>
<div class="modal fade"
id="tipModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">提示信息</h4>
</div>
<div class="modal-body"
id="tipMsg"></div>
</div>
</div>
</div>
</template>
<script>
import TableHelper from '@/utils/bootstrap-table-helper';
import { listAll } from '@/api/partition/partitionInfo';
import { buildSelectOption } from '@/utils/system-helper';
export default {
name: "UserCheckAdminView",
data () {
return {
partitionInfos: [],
phoneAreaCodes: [],
};
},
setup () {
function delPhoto (obj) {
var tr = $(obj).parent().parent();
tr.remove();
}
window.delPhoto = delPhoto;
return {
delPhoto
};
},
created () {
this.$nextTick(function () {
this.initPartition();
this.initPhoneAreaCode();
this.initData();
const $this = this;
$("#partitionId").on("change", function () {
var selectedValue = $(this).val();
$this.initRegionInfo(selectedValue);
});
});
},
methods: {
initData () {
let $this = this;
$(function () {
$('#table').bootstrapTable('destroy');
$('#table').bootstrapTable({
cache: false,
striped: true,
showRefresh: false,
pageSize: 10,
pagination: true,
pageList: [10, 20, 30, 50],
sidePagination: "client", //表示服务端请求
//设置为undefined可以获取pageNumberpageSizesearchTextsortNamesortOrder
//设置为limit可以获取limit, offset, search, sort, order
queryParamsType: "undefined",
queryParams: function queryParams (params) { //设置查询参数
var param = {
pageSize: params.pageSize,
pageNumber: params.pageNumber,
erbanNoList: $('#erbanNoList').val(),
type: $('#checkType').val()
};
// console.log(param);
return param;
},
uniqueId: 'code',
toolbar: '#toolbar',
url: '/admin/userCheckAdmin/list',
onLoadSuccess: function (data) {//加载成功时执行
console.log(data);
if (data.code !== 200) {
$("#tipMsg").text("数据加载失败 " + data.message);
$("#tipModal").modal('show');
}
console.log("load success");
},
onLoadError: function () { //加载失败时执行
console.log("load fail");
},
columns: [
{ field: 'account.erbanNo', title: '平台号', align: 'center', valign: 'middle' },
{
field: 'users.avatar',
title: '头像',
align: 'center',
valign: 'middle',
formatter: function (val, row, index) {
return "<img src='" + val + "' width='40' height='40'>";
}
},
{ field: 'account.uid', title: 'Uid', align: 'center', valign: 'middle' },
{ field: 'users.nick', title: '用户昵称', align: 'center', valign: 'middle' },
{ field: 'users.phoneAreaCode', title: '区号', align: 'center', valign: 'middle' },
{ field: 'users.phone', title: '手机号', align: 'center', valign: 'middle' },
{ field: 'users.email', title: '邮箱', align: 'center', valign: 'middle' },
{ field: 'users.userDesc', title: '简介', align: 'center', valign: 'middle' },
{
field: 'users.partitionId',
title: '地区',
align: 'center',
valign: 'middle',
formatter: function (val, row, index) {
let value = '';
let partitions = $this.partitionInfos.filter(v => v.id == val);
if (val && partitions.length > 0) {
value = partitions[0].desc;
}
return value;
}
},
{ field: 'regionName', title: '国家', align: 'center', valign: 'middle' },
{
field: '', title: '是否实名认证', align: 'center', valign: 'middle',
formatter: function (val, row, index) {
if (row.users.idCardNum && row.users.realName) {
return '是';
} else {
return '否';
}
}
},
{
field: 'privatePhoto',
title: '相册',
align: 'center',
width: '10%',
valign: 'middle',
formatter: function (val, row, index) {
var photoUrl = '';
val.forEach(function (item, index) {
photoUrl += "<img src='" + item.photoUrl + "' width='70' height='70'>";
});
return photoUrl;
}
},
{ field: 'userPurseVo.diamonds', title: '金币数', align: 'center', valign: 'middle' },
{ field: 'userPurseVo.golds', title: '钻石数', align: 'center', valign: 'middle' },
{
field: 'users.birth',
title: '用户出生日期',
align: 'center',
valign: 'middle',
formatter: function (val, row, index) {
if (val) {
var date = new Date(val);
return date.format("yyyy-MM-dd");
} else {
return '-';
}
}
},
{
field: 'users.gender',
title: '性别',
align: 'center',
valign: 'middle',
formatter: function (val, row, index) {
if (val == 1) {
return '男';
} else {
return '女';
}
}
},
// { field: 'users.alipayAccount', title: '支付宝账号', align: 'center', valign: 'middle' },
// { field: 'users.alipayAccountName', title: '支付宝账户名', align: 'center', valign: 'middle' },
{
field: 'users.userVipInfoVO',
title: 'vip等级',
align: 'center',
valign: 'middle',
formatter: function (val, row, index) {
if (!val) {
return 0
} else {
return val.vipLevel;
}
}
},
{
field: 'users.userLevelVo',
title: '财富等级(经验值)',
align: 'center',
valign: 'middle',
formatter: function (val, row, index) {
return val.experLevelName + '(' + val.experAmount + ')';
}
},
{
field: 'users.userLevelVo',
title: '魅力等级(魅力值)',
align: 'center',
valign: 'middle',
formatter: function (val, row, index) {
return val.charmLevelName + '(' + val.charmAmount + ')';
}
},
{
field: 'users.defUser',
title: '账号类型',
align: 'center',
valign: 'middle',
formatter: function (val, row, index) {
switch (val) {
case 1:
return '普通账号';
case 2:
return '官方账号';
case 3:
return '机器账号';
case 4:
return '工会账户';
}
}
},
{
field: 'users.createTime',
title: '创建时间',
align: 'center',
valign: 'middle',
formatter: function (val, row, index) {
if (val) {
var date = new Date(val);
return date.format("yyyy-MM-dd hh:mm:ss");
} else {
return '-';
}
}
},
{ field: 'users.inviteCode', title: '所属邀请码', align: 'center', valign: 'middle' },
{
field: 'tmp',
title: '操作',
align: 'center',
width: '20%',
valign: 'middle',
formatter: function (val, row, index) {
var key = row.account.uid;
var parentMode = row.users.parentMode;
var result = "<button class='btn btn-sm btn-success opt-edit' data-id=" + key + ">编辑</button>"
+ "<button class='btn btn-sm btn-warning opt-detail' data-id=" + key + ">明细</button>"
+ "<button class='btn btn-sm btn-warning opt-resetPasswd' data-id=" + key + ">重置密码</button>";
if (parentMode) {
result += "<button class='btn btn-sm btn-warning opt-closeParentMode' data-id=" + key + " data-password=" + row.users.parentModePwd + ">关闭青少年模式</button>";
}
return result;
}
}
]
})
$('#btnSearch').on('click', function () {
TableHelper.doRefresh('#table');
})
$('#table').on('click', '.opt-detail', function () {
console.log($(this).data('id'));
clearDetailModal();
//清除个人相册
$("#userpriphos").val("");
$.ajax({
url: '/admin/userCheckAdmin/getOne',
type: 'post',
data: {
uid: $(this).data('id')
},
dataType: 'json',
success: function (res) {
if (res.code == 200) {
var purse = res.data.userPurseVo;
var users = res.data.users;
var loginRecord = res.data.accountLoginRecord;
if (users) {
$('.nick span').html(users.nick);
$('.erbanNo span').html(users.erbanNo);
$('.uid span').html(users.uid);
$('.regionName span').html(res.data.regionName);
if (users.gender == 1) {
$('.gender span').html('男');
} else {
$('.gender span').html('女');
}
$('.phone span').html(users.phone);
var birthDate = users.birth ? new Date(users.birth).format('yyyy-MM-dd') : '';
$('.birth span').html(birthDate);
$('.email span').html(users.email);
$('.sign span').html(users.signture);
//$('.userVoice span').html(users.userVoice);
$('.userDesc span').html(users.userDesc);
const vipLevel = users.userVipInfoVO ? users.userVipInfoVO.vipLevel : 0;
$('.vipLevel span').html(vipLevel)
const experDesc = users.userLevelVo.experLevelName + '(' + users.userLevelVo.experAmount + ')'
$('.exper span').html(experDesc)
const charmDesc = users.userLevelVo.charmLevelName + '(' + users.userLevelVo.charmAmount + ')'
$('.charm span').html(charmDesc)
$('.diamondNum span').html(purse.diamonds);
//$('.crystalNum span').html(purse.crystals);
$('.goldNum span').html(purse.golds);
$('.followNum span').html(users.followNum);
$('.fansNum span').html(users.fansNum);
switch (users.defUser) {
case 1:
$('.defUser span').html('普通账号');
break;
case 2:
$('.defUser span').html('官方账号');
break;
case 3:
$('.defUser span').html('机器账号');
break;
case 4:
$('.defUser span').html('工会账号');
break;
}
/*$('.fortune span').html(users.fortune);
$('.channelType span').html(users.channel);*/
/*$('.alipayAccount span').html(users.alipayAccount);
$('.alipayAccountName span').html(users.alipayAccountName);*/
if (loginRecord) {
/*$('.ispType span').html(loginRecord.ispType);
$('.netType span').html(loginRecord.netType);*/
$('.ip span').html(loginRecord.loginIp);
$('.ipRegion span').html(loginRecord.loginIpRegion);
$('.model span').html(loginRecord.model);
$('.os span').html(loginRecord.os);
$('.deviceID span').html(loginRecord.deviceId);
$('.appVersion span').html(loginRecord.appVersion);
} else {
/*$('.ispType span').html(users.ispType);
$('.netType span').html(users.netType);*/
$('.ip span').html(users.loginIp);
$('.ipRegion span').html(users.loginIpRegion);
$('.model span').html(users.model);
$('.os span').html(users.os);
$('.deviceID span').html(users.deviceId);
$('.appVersion span').html(users.appVersion);
}
let partitionDesc = '';
let partitionId = users.partitionId;
let partitions = $this.partitionInfos.filter(v => v.id == partitionId);
if (partitions.length > 0) {
partitionDesc = partitions[0].desc;
}
$('.partitionId span').html(partitionDesc);
$('#detailModal').modal('show');
} else {
$("#tipMsg").text("不存在用户详细信息,原因:该用户资料未补全");
$("#tipModal").modal('show');
}
}
}
})
})
function clearDetailModal () {
$('#detailModal span').html('');
}
$('#uploadPicBtn').on('click', function () {
if (!$('#uploadPhotoFile').val()) {
$("#tipMsg").text("请选择上传图片");
$("#tipModal").modal('show');
return;
}
var options = {
type: 'post',
url: '/admin/userCheckAdmin/upload/photo',
dataType: 'json',
success: function (json) {
if (json.path) {
$('#imgUrl').val(json.path);
$('#picUrl').attr('src', json.path);
var trHtml = '<tr><td style="text-align:center;"><img src="' + json.path + '" width="100" height="100" class="photoImgUrl"></td>' +
'<td><button class="btn btn-danger" type="button" onclick="delPhoto(this)">删除</button></td></tr>';
$('#photoTbody').append(trHtml);
} else {
$('#tipMsg').text(json.msg);
$('#tipModal').modal('show');
}
}
}
$("#editUser").ajaxSubmit(options);
});
$('#table').on('click', '.opt-edit', function () {
$('#imgUrl').val('');
$('#picUrl').attr('src', '');
$('#uploadPhotoFile').val('');
$("#notSend").prop("checked", true);
$('#msg').val('');
$('#msgDiv').show();
$.ajax({
url: '/admin/userCheckAdmin/getOne',
type: 'post',
data: {
uid: $(this).data('id')
},
dataType: 'json',
success: function (res) {
if (res.code == 200) {
var users = res.data.users;
var account = res.data.account;
var nick = users ? users.nick : '';
var avatar = users ? users.avatar : '';
var gender = users ? users.gender : 1;
var defUser = users ? users.defUser : 1;
const partitionId = users.partitionId;
const regionId = users.regionId;
$this.initRegionInfo(partitionId, regionId)
$('#editNick').val(nick);
$('#phoneAreaCode').val(users.phoneAreaCode);
$('#editPhone').val(users.phone);
$('#editEmail').val(users.email);
$('#addImgUrl').attr('src', avatar);
$('#editAvatar').val(avatar);
$('#editGender').val(gender);
$('#editUid').val(users.uid);
$('#editDefUser').val(defUser);
$("#alipayAccount").val(users.alipayAccount);
$("#alipayAccountName").val(users.alipayAccountName);
$("#app").val(users.currentApp);
$("#userDesc").val(users.userDesc);
$('#partitionId').val(partitionId);
const experDesc = users.userLevelVo.experLevelName + '(' + users.userLevelVo.experAmount + ')'
$('.experLevelName').html(experDesc)
const charmDesc = users.userLevelVo.charmLevelName + '(' + users.userLevelVo.charmAmount + ')'
$('.charmLevelName').html(charmDesc)
// 财富等级修改按钮
$('#modifyWealthLevelBtn').attr('experLevelName',users.userLevelVo.experLevelName)
$('#modifyWealthLevelBtn').attr('uid',users.uid)
// 魅力等级修改按钮
$('#modifyCharmLevelBtn').attr('charmLevelName',users.userLevelVo.charmLevelName)
$('#modifyCharmLevelBtn').attr('uid',users.uid)
var privatePhoto = res.data.privatePhoto;
var $photos = $('#photoTbody');
$photos.html("");
$.each(privatePhoto, function (i, item) {
var $photo = $('<tr><td style="text-align:center;"><img src="' + item.photoUrl + '" width="100" height="100" class="photoImgUrl"></td>' +
'<td><button class="btn btn-danger" type="button" onclick="delPhoto(this)">删除</button></td></tr>');
$photos.append($photo);
});
}
$('#editModal').modal('show');
}
})
})
/**
* 重置密码
*/
$('#table').on('click', '.opt-resetPasswd', function () {
$('#resetPasswdUid').val($(this).data('id'));
$('#resetPasswdNick').val('');
$('#resetPasswdErbanNo').val('');
$('#resetPasswdNewPasswd').val('');
$.ajax({
url: '/admin/userCheckAdmin/getOne',
type: 'post',
data: {
uid: $(this).data('id')
},
dataType: 'json',
success: function (res) {
if (res.code == 200) {
var users = res.data.users;
var nick = users ? users.nick : '';
var erbanNo = users ? users.erbanNo : '';
$('#resetPasswdNick').val(nick);
$('#resetPasswdErbanNo').val(erbanNo);
}
$('#resetPasswdModal').modal('show');
}
})
})
/**
* 关闭青少年模式
*/
$('#table').on('click', '.opt-closeParentMode', function () {
debugger;
$.ajax({
url: '/admin/userCheckAdmin/closeUserParentModeByAdmin',
type: 'get',
data: {
uid: $(this).data('id'),
password: $(this).data('password'),
status: 0,
},
dataType: 'json',
success: function (res) {
if (res.code == 200) {
$("#tipMsg").text("操作成功");
} else {
$("#tipMsg").text("操作失败");
}
$("#tipModal").modal('show');
}
})
})
$('#resetPasswdSave').on('click', function () {
if ($('#resetPasswdForm').validationEngine('validate')) {
if (!/^(?=.*\d)(?=.*[A-z]).{6,16}$/.test($('#resetPasswdNewPasswd').val())) {
$("#tipMsg").text("保存失败密码必须包括字母和数字长度为6到16");
$("#tipModal").modal('show');
return;
}
$.ajax({
type: "post",
url: "/admin/account/resetPassword",
data: {
uid: $('#resetPasswdUid').val(),
password: $('#resetPasswdNewPasswd').val()
},
dataType: 'json',
success: function (res) {
if (res.code == 200) {
$("#resetPasswdModal").modal('hide');
$("#tipMsg").text("保存成功");
$("#tipModal").modal('show');
TableHelper.doRefresh("#table");
} else {
$("#tipMsg").text("保存失败,错误码:" + res.code);
$("#tipModal").modal('show');
}
}
})
}
})
$('#removePhone').on('click', function () {
$.ajax({
type: "post",
url: "/admin/userCheckAdmin/removePhone",
data: {
uid: $('#editUid').val()
},
dataType: 'json',
success: function (res) {
if (res.code == 200) {
$("#tipMsg").text("解绑成功");
$("#tipModal").modal('show');
$('#editPhone').html(res.data.phone);
TableHelper.doRefresh('#table');
} else {
$("#tipMsg").text("解绑失败");
$("#tipModal").modal('show');
}
}
})
})
$('#editSave').on('click', function () {
var userDesc = $("#userDesc").val();
if (userDesc && userDesc.length > 60) {
$("#tipMsg").text("简介文字过长");
$("#tipModal").modal('show');
return;
}
var photoUrls = '';
var list = $('#photoTable').find($('.photoImgUrl'));
var size = list ? list.length : 0;
if (size > 8) {
$("#tipMsg").text("最多只能上传8张照片");
$("#tipModal").modal('show');
return;
}
for (var i = 0; i < size; i++) {
photoUrls += list[i].src + ',';
}
var sendMsg = $('input[name="sendMsg"]:checked').val();
if (sendMsg == 1 && !$("#msg").val()) {
$("#tipMsg").text("请填写通知内容");
$("#tipModal").modal('show');
return;
}
if ($('#editUser').validationEngine('validate')) {
$.ajax({
type: "post",
url: "/admin/userCheckAdmin/saveUser",
data: {
nick: $('#editNick').val(),
gender: $('#editGender').val(),
avatar: $('#editAvatar').val(),
uid: $('#editUid').val(),
phoneAreaCode: $('#phoneAreaCode').val(),
phone: $('#editPhone').val(),
email: $('#editEmail').val(),
defUser: $('#editDefUser').val(),
alipayAccount: $('#alipayAccount').val(),
alipayAccountName: $('#alipayAccountName').val(),
userDesc: $("#userDesc").val(),
photoUrls: photoUrls,
msg: $("#msg").val(),
sendMsg: sendMsg,
partitionId: $('#partitionId').val(),
regionId: $('#regionId').val()
},
dataType: 'json',
success: function (res) {
if (res.code == 200) {
// $('#erbanNoList').val('');
$("#editModal").modal('hide');
$("#tipMsg").text("保存成功");
$("#tipModal").modal('show');
TableHelper.doRefresh("#table");
} else if (res.code == 1600) {
$("#tipMsg").text("保存失败,错误码:" + res.code + ",无法寻找用户资料,请确认该用户资料是否补全或存在");
$("#tipModal").modal('show');
} else if (res.code == 999) {
$("#tipMsg").text("保存失败,错误码:" + res.code + ",该平台号已被占用");
$("#tipModal").modal('show');
} else if (res.code == 4002) {
$("#tipMsg").text("保存失败,错误码:" + res.code + ",该手机号已被占用");
$("#tipModal").modal('show');
} else {
$("#tipMsg").text("保存失败," + res.message);
$("#tipModal").modal('show');
}
}
})
}
})
$('#editUploadBtn').on('click', function () {
//判断图片的大小
var file = $('#addUploadFile')[0];
if (file != undefined && file != "") {
var fileSize = file.files[0].size; //获得文件大小;
console.log(fileSize);
if (fileSize > 5242880) {
$("#tipMsg").text("当前图片大于5M,请重新选择");
$("#tipModal").modal('show');
return
}
}
var options = {
fileElementId: 'addUploadFile', //需要上传的文件域的ID即<input type="file">的ID。
type: 'post',
url: '/admin/upload/img',
dataType: 'json',
success: function (json) {
if (json.path) {
$('#editAvatar').val(json.path);
$('#addImgUrl').attr("src", json.path);
console.log(json.path);
} else {
$("#tipMsg").text(json.msg);
$("#tipModal").modal('show');
}
}
}
$("#editUser").ajaxSubmit(options);
})
$('#default_nick').on('click', function () {
$.ajax({
type: "post",
url: "/admin/userCheckAdmin/getDefaultNick",
data: {
app: $('#app').val()
},
dataType: 'json',
success: function (res) {
if (res.code == 200) {
$("#editNick").val(res.data);
}
}
})
})
$('#default_avatar').on('click', function () {
$.ajax({
type: "post",
url: "/admin/userCheckAdmin/getDefaultAvatar",
data: {
app: $('#app').val()
},
dataType: 'json',
success: function (res) {
if (res.code == 200) {
$("#addImgUrl").attr("src", res.data);
$("#editAvatar").val(res.data);
}
}
})
})
$('input[name="sendMsg"]').change(function () {
if ($("#needSend").is(":checked")) {
$('#msgDiv').show();
} else if ($("#notSend").is(":checked")) {
$('#msgDiv').hide();
}
});
// 财富等级 - 打开弹窗
$('#modifyWealthLevelBtn').on('click', function () {
let experLevelName = $(this).attr('experLevelName');
$('#resetWealthLevelUid').val($(this).attr('uid'));
$('#experLevelNameTxt').html(experLevelName);
$('#resetWealthLevel .modal-title').html('财富等级修改');
$('#resetWealthLevel .tip').html('(更改等级之后财富等级会变为该等级的起始值)');
$('#resetExperLevelNameSave').attr('type',2);
$('#resetWealthLevel').modal('show');
})
// 魅力等级 - 打开弹窗
$('#modifyCharmLevelBtn').on('click', function () {
let experLevelName = $(this).attr('charmLevelName');
$('#resetWealthLevelUid').val($(this).attr('uid'));
$('#experLevelNameTxt').html(experLevelName);
$('#resetWealthLevel .modal-title').html('魅力等级修改');
$('#resetWealthLevel .tip').html('(更改等级之后魅力等级会变为该等级的起始值)');
$('#resetExperLevelNameSave').attr('type',1);
$('#resetWealthLevel').modal('show');
})
// 修改财富等级
$('#resetExperLevelNameSave').on('click', function () {
let type = $(this).attr('type');
$.ajax({
type: "post",
url: "/userExpChange/change",
data: {
uid: $('#resetWealthLevelUid').val(),
newLevelSeq : $('#resetNewWealthLevel').val(),
type
},
dataType: 'json',
success: function (res) {
if (res.code == 200) {
$("#editModal").modal('hide');
$("#resetWealthLevel").modal('hide');
$("#tipMsg").text("保存成功");
$("#tipModal").modal('show');
TableHelper.doRefresh("#table");
$('#resetNewWealthLevel').val('');
} else {
$("#tipMsg").text("保存失败,错误码:" + res.code);
$("#tipModal").modal('show');
}
}
})
})
// // 子模态框关闭后恢复父模态框的滚动能力
// $('#resetWealthLevel').on('hidden.bs.modal', function () {
// // 确保父模态框仍然可滚动
// setTimeout(function() {
// $('#editModal').style.overflow = 'auto';
// }, 0);
// });
})
},
initPartition () {
listAll().then(res => {
let data = res.data;
this.partitionInfos = data;
buildSelectOption(
"#partitionId",
null,
data.map((v) => {
return {
value: v.id,
text: v.desc,
};
})
);
});
},
initRegionInfo (partitionId, regionId) {
const regionSelect = $("#regionId");
$.ajax({
type: "get",
url: "/admin/regionInfo/listByPartitionId",
data: { partitionId: partitionId, containAll: false },
dataType: "json",
beforeSend: function () {
regionSelect.prop("disabled", true);
},
success: function (res) {
if (res.code !== 200) {
//报错
throw new Error(res);
}
regionSelect.empty();
for (var i = 0; i < res.data.length; i++) {
const regionInfo = res.data[i];
const option = $("<option>", { text: regionInfo.name, value: regionInfo.id, selected: regionId && regionId === regionInfo.id });
regionSelect.append(option);
}
},
error: function (err) {
console.log(err);
$("#tipMsg").text("获取手机区号失败,错误码:");
$("#tipModal").modal('show');
},
complete: function () {
regionSelect.prop("disabled", false);
}
})
},
initPhoneAreaCode () {
$.ajax({
type: "get",
url: "/admin/userCheckAdmin/listPhoneAreaCode",
dataType: "json",
success: function (res) {
let data = res.data;
this.phoneAreaCodes = data;
buildSelectOption(
"#phoneAreaCode",
null,
data.map((v) => {
return {
value: v.phoneAreaCode,
text: v.phoneAreaCode + "(" + v.desc + ")",
};
})
);
}
});
},
},
};
</script>
<style scoped>
.pull-left {
width: 100%;
}
#toolbar textarea {
overflow: hidden;
resize: none;
width: 100%;
box-sizing: border-box;
padding: 4px;
height: 100px;
line-height: 20px;
}
#detailModal .part {
display: flex;
justify-content: space-between;
align-items: center;
}
#removePhone,
#editPhone {
display: block;
text-align: left;
}
#btnSearch {
margin-right: 12px;
}
</style>