新增举报页面
This commit is contained in:
163
view/yinmeng/modules/report/css/index.css
Normal file
163
view/yinmeng/modules/report/css/index.css
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
html,
|
||||||
|
body {
|
||||||
|
width: 100%;
|
||||||
|
background: #2E5FEC;
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layui-m-layershade {
|
||||||
|
background-color: rgba(0, 0, 0, 0.3) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
width: 10rem;
|
||||||
|
margin: 0 auto;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form {
|
||||||
|
width: 9.2rem;
|
||||||
|
border-radius: 0.26667rem;
|
||||||
|
background: #fff;
|
||||||
|
margin: -0.2rem auto 0.66667rem;
|
||||||
|
position: relative;
|
||||||
|
padding: 0.26667rem 0.26667rem;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .title {
|
||||||
|
width: 100%;
|
||||||
|
color: #e21e1e;
|
||||||
|
font-size: 0.42667rem;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 0.26667rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .content {
|
||||||
|
color: #5f5f5f;
|
||||||
|
font-size: 0.37333rem;
|
||||||
|
line-height: 0.53333rem;
|
||||||
|
margin-bottom: 0.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form p {
|
||||||
|
color: #474646;
|
||||||
|
font-size: 0.37333rem;
|
||||||
|
margin-bottom: 0.26667rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form p b {
|
||||||
|
color: red;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form p i {
|
||||||
|
font-style: normal;
|
||||||
|
font-size: 0.24rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .textarea {
|
||||||
|
width: 100%;
|
||||||
|
background: #ccc;
|
||||||
|
border-radius: 0.26667rem;
|
||||||
|
display: block;
|
||||||
|
height: 2rem;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0.26667rem;
|
||||||
|
font-size: 0.32rem;
|
||||||
|
text-align: left;
|
||||||
|
color: #1a1a1a;
|
||||||
|
background: whitesmoke;
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
resize: none;
|
||||||
|
margin-bottom: 0.26667rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .textarea2 {
|
||||||
|
width: 100%;
|
||||||
|
background: #ccc;
|
||||||
|
border-radius: 0.26667rem;
|
||||||
|
display: block;
|
||||||
|
height: 1rem;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0.26667rem;
|
||||||
|
font-size: 0.32rem;
|
||||||
|
text-align: left;
|
||||||
|
color: #1a1a1a;
|
||||||
|
background: whitesmoke;
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
resize: none;
|
||||||
|
margin-bottom: 0.26667rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .inform-img {
|
||||||
|
margin-bottom: 0.26667rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .inform-img .inform-img-title {
|
||||||
|
color: #666666;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .inform-img .box {
|
||||||
|
margin-top: 0.53333rem;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .inform-img .box .update_evidence {
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 0.26667rem;
|
||||||
|
width: 2.13333rem;
|
||||||
|
height: 2.13333rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .inform-img .box .update_evidence.has-data .reupdate {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .inform-img .box .update_evidence input {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
opacity: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .inform-img .box .update_evidence img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .inform-img .box .update_evidence .reupdate {
|
||||||
|
width: 100%;
|
||||||
|
height: 0.53333rem;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
background-color: rgba(0, 0, 0, 0.6);
|
||||||
|
color: white;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 0.53333rem;
|
||||||
|
z-index: 2;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form .but {
|
||||||
|
width: 80%;
|
||||||
|
margin: 0.4rem auto 0;
|
||||||
|
height: 1.2rem;
|
||||||
|
line-height: 1.2rem;
|
||||||
|
border-radius: 1.2rem;
|
||||||
|
text-align: center;
|
||||||
|
color: #1a1a1a;
|
||||||
|
background: #ffeb3b;
|
||||||
|
font-size: 0.4rem;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
170
view/yinmeng/modules/report/css/index.scss
Normal file
170
view/yinmeng/modules/report/css/index.scss
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
@function px2rem($px) {
|
||||||
|
@return $px / 75+rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
width: 100%;
|
||||||
|
background: #2E5FEC;
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layui-m-layershade {
|
||||||
|
background-color: rgba(0, 0, 0, .3) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
width: px2rem(750);
|
||||||
|
margin: 0 auto;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form {
|
||||||
|
width: 9.2rem;
|
||||||
|
// height: 5rem;
|
||||||
|
border-radius: px2rem(20);
|
||||||
|
background: #fff;
|
||||||
|
margin: px2rem(-15) auto px2rem(50);
|
||||||
|
position: relative;
|
||||||
|
padding: px2rem(20) px2rem(20);
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
width: 100%;
|
||||||
|
color: rgb(226, 30, 30);
|
||||||
|
font-size: px2rem(32);
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: px2rem(20);
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
color: #5f5f5f;
|
||||||
|
font-size: px2rem(28);
|
||||||
|
line-height: px2rem(40);
|
||||||
|
margin-bottom: px2rem(30);
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
color: #474646;
|
||||||
|
font-size: px2rem(28);
|
||||||
|
margin-bottom: px2rem(20);
|
||||||
|
|
||||||
|
b {
|
||||||
|
color: red;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
font-style: normal;
|
||||||
|
font-size: px2rem(18);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.textarea {
|
||||||
|
width: 100%;
|
||||||
|
background: #ccc;
|
||||||
|
border-radius: px2rem(20);
|
||||||
|
display: block;
|
||||||
|
height: 2rem;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: px2rem(20);
|
||||||
|
font-size: px2rem(24);
|
||||||
|
text-align: left;
|
||||||
|
color: #1a1a1a;
|
||||||
|
background: rgba(245, 245, 245, 1);
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
resize: none;
|
||||||
|
margin-bottom: px2rem(20);
|
||||||
|
}
|
||||||
|
|
||||||
|
.textarea2 {
|
||||||
|
width: 100%;
|
||||||
|
background: #ccc;
|
||||||
|
border-radius: px2rem(20);
|
||||||
|
display: block;
|
||||||
|
height: 1rem;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: px2rem(20);
|
||||||
|
font-size: px2rem(24);
|
||||||
|
text-align: left;
|
||||||
|
color: #1a1a1a;
|
||||||
|
background: rgba(245, 245, 245, 1);
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
resize: none;
|
||||||
|
margin-bottom: px2rem(20);
|
||||||
|
}
|
||||||
|
|
||||||
|
.inform-img {
|
||||||
|
margin-bottom: px2rem(20);
|
||||||
|
|
||||||
|
.inform-img-title {
|
||||||
|
color: #666666;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
margin-top: px2rem(40);
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.update_evidence {
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: px2rem(20);
|
||||||
|
width: px2rem(160);
|
||||||
|
height: px2rem(160);
|
||||||
|
margin-right: px2rem(15);
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&.has-data {
|
||||||
|
.reupdate {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
opacity: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reupdate {
|
||||||
|
width: 100%;
|
||||||
|
height: px2rem(40);
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
background-color: rgba(0, 0, 0, 0.6);
|
||||||
|
color: white;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: px2rem(40);
|
||||||
|
z-index: 2;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.but {
|
||||||
|
width: 80%;
|
||||||
|
margin: px2rem(30) auto 0;
|
||||||
|
height: 1.2rem;
|
||||||
|
line-height: 1.2rem;
|
||||||
|
border-radius: 1.2rem;
|
||||||
|
text-align: center;
|
||||||
|
color: #1a1a1a;
|
||||||
|
background: #ffeb3b;
|
||||||
|
font-size: px2rem(30);
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
BIN
view/yinmeng/modules/report/images/bg.png
Normal file
BIN
view/yinmeng/modules/report/images/bg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 282 KiB |
BIN
view/yinmeng/modules/report/images/report_uploading_img.png
Normal file
BIN
view/yinmeng/modules/report/images/report_uploading_img.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
60
view/yinmeng/modules/report/index.html
Normal file
60
view/yinmeng/modules/report/index.html
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>举报</title>
|
||||||
|
<link rel="stylesheet" href="../../common/css/reset.css">
|
||||||
|
<link rel="stylesheet" href="./css/index.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<img src="./images/bg.png" alt="" class="box">
|
||||||
|
<div class="form">
|
||||||
|
<div class="title">重要提醒:</div>
|
||||||
|
<div class="content">如果您发现有不法分子通过平台进行违规操作,请您务必向我们进行反馈,可在下发填写相关信息,或在我的-联系客服反馈,感谢您的理解与支持!</div>
|
||||||
|
<p><b>*</b>请简单描述您遇到的问题:</p>
|
||||||
|
<textarea name="textarea" placeholder="请输入举报内容" class="textarea"></textarea>
|
||||||
|
<p><b>*</b>请填写被举报人ID:</p>
|
||||||
|
<textarea name="textarea" placeholder="被举报人ID" class="textarea2"></textarea>
|
||||||
|
<p><b>*</b>请上传截图,包含被举报人信息<i></i>:</p>
|
||||||
|
<div class="inform-img">
|
||||||
|
<p class="inform-img-title">上传截图 (图片不能超过1M)</p>
|
||||||
|
<div class="box">
|
||||||
|
<div class="update_evidence">
|
||||||
|
<img src="images/report_uploading_img.png" alt="">
|
||||||
|
<input class="update-img" type="file" accept="image/*">
|
||||||
|
<div class="reupdate">重新上传
|
||||||
|
<input class="reupdate-img" type="file" accept="image/*">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="update_evidence">
|
||||||
|
<img src="images/report_uploading_img.png" alt="">
|
||||||
|
<input class="update-img" type="file" accept="image/*">
|
||||||
|
<div class="reupdate">重新上传
|
||||||
|
<input class="reupdate-img" type="file" accept="image/*">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="update_evidence">
|
||||||
|
<img src="images/report_uploading_img.png" alt="">
|
||||||
|
<input class="update-img" type="file" accept="image/*">
|
||||||
|
<div class="reupdate">重新上传
|
||||||
|
<input class="reupdate-img" type="file" accept="image/*">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p style="font-size: 0.3rem;text-align: center;">需要至少上传一张相关截图,以提高举报的准确度</p>
|
||||||
|
<div class="but">提交</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
<script src="../../common/js/flexible.js"></script>
|
||||||
|
<script src="../../common/js/jquery-3.2.1.min.js"></script>
|
||||||
|
<script src="../../common/js/common2.js"></script>
|
||||||
|
<script src="../../common/js/layer.js"></script>
|
||||||
|
<script src="../../common/js/vconsole.min.js"></script>
|
||||||
|
<script src="../../common/js/route-constant.js"></script>
|
||||||
|
<script src="./js/index.js"></script>
|
129
view/yinmeng/modules/report/js/index.js
Normal file
129
view/yinmeng/modules/report/js/index.js
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
let urlPrefix = getUrlPrefix()
|
||||||
|
let browser = checkVersion()
|
||||||
|
let env = EnvCheck();
|
||||||
|
if (env == 'test') {
|
||||||
|
new VConsole();
|
||||||
|
}
|
||||||
|
// 封装layer消息提醒框
|
||||||
|
let layerIndex
|
||||||
|
const showLoading = (content = '加载中...') => {
|
||||||
|
layer.open({
|
||||||
|
type: 2,
|
||||||
|
shadeClose: false,
|
||||||
|
content,
|
||||||
|
success (e) {
|
||||||
|
layerIndex = $(e).attr('index')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const hideLoading = (index) => {
|
||||||
|
layer.close(index)
|
||||||
|
}
|
||||||
|
const toastMsg = (content = '操作完成', time = 2) => {
|
||||||
|
layer.open({
|
||||||
|
content,
|
||||||
|
time,
|
||||||
|
skin: 'msg'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 初始化函数
|
||||||
|
$(function () {
|
||||||
|
getInfoFromClient();
|
||||||
|
})
|
||||||
|
// 上传图片
|
||||||
|
function upload (than, type) {
|
||||||
|
showLoading();
|
||||||
|
var val = than.get(0).files[0];
|
||||||
|
var formData = new FormData();
|
||||||
|
formData.append('uid', pubInfo.uid);
|
||||||
|
formData.append('file', val);
|
||||||
|
networkRequest({
|
||||||
|
type: 'post',
|
||||||
|
url: urlPrefix + '/live/upload',
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
data: formData,
|
||||||
|
success (res) {
|
||||||
|
if (res.code === 200) {
|
||||||
|
if (type == 1) {
|
||||||
|
than.siblings('img').attr('src', res.data);
|
||||||
|
than.parent().addClass('has-data')
|
||||||
|
than.hide();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
than.parent().siblings('img').attr('src', res.data);
|
||||||
|
than.parent().parent().addClass('has-data');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
toastMsg(res.message)
|
||||||
|
}
|
||||||
|
hideLoading(layerIndex)
|
||||||
|
},
|
||||||
|
error (err) {
|
||||||
|
hideLoading(layerIndex)
|
||||||
|
toastMsg('网络错误,请退出重进')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 上传按钮
|
||||||
|
$('.update_evidence').on('change', '.update-img', function () {
|
||||||
|
var _that = $(this);
|
||||||
|
upload(_that, 1);
|
||||||
|
})
|
||||||
|
// 重新上传按钮
|
||||||
|
$('.update_evidence').on('change', '.reupdate-img', function () {
|
||||||
|
var _that = $(this);
|
||||||
|
upload(_that, 2);
|
||||||
|
})
|
||||||
|
// 提交按钮
|
||||||
|
$('.but').click(function () {
|
||||||
|
var reason = $('.form .textarea').val();
|
||||||
|
var targetUid = $('.form .textarea2').val();
|
||||||
|
var imgStr = '';
|
||||||
|
for (var i = 0; i < $('.update_evidence').length; i++) {
|
||||||
|
if ($('.update_evidence').eq(i).find('img').attr('src').match('images/report_uploading_img.png')) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (i < $('.update_evidence').length) {
|
||||||
|
imgStr += ',' + $('.update_evidence').eq(i).find('img').attr('src');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (imgStr.indexOf(',') == 0) {
|
||||||
|
imgStr = imgStr.substr(1, imgStr.length);
|
||||||
|
}
|
||||||
|
if (reason == '') {
|
||||||
|
toastMsg('请简单描述您遇到的问题');
|
||||||
|
} else if (targetUid == '') {
|
||||||
|
toastMsg('请填写被举报人ID');
|
||||||
|
} else if (imgStr == '') {
|
||||||
|
toastMsg('需要至少上传一张相关截图');
|
||||||
|
} else {
|
||||||
|
impeachSomeone(reason, targetUid, imgStr);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// 提交举报接口
|
||||||
|
function impeachSomeone (reason, targetUid, imgStr) {
|
||||||
|
showLoading();
|
||||||
|
networkRequest({
|
||||||
|
type: 'post',
|
||||||
|
url: urlPrefix + '/impeach/impeachSomeone',
|
||||||
|
data: {
|
||||||
|
uid: pubInfo.uid,
|
||||||
|
reason: reason,
|
||||||
|
imgUrl: imgStr,
|
||||||
|
targetErBanNo: targetUid
|
||||||
|
},
|
||||||
|
success (res) {
|
||||||
|
if (res.code === 200) {
|
||||||
|
toastMsg('提交成功')
|
||||||
|
} else {
|
||||||
|
toastMsg(res.message)
|
||||||
|
}
|
||||||
|
hideLoading(layerIndex)
|
||||||
|
},
|
||||||
|
error (err) {
|
||||||
|
hideLoading(layerIndex)
|
||||||
|
toastMsg('网络错误,请退出重进')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
Reference in New Issue
Block a user