记得上下班打卡 | git大法好,push需谨慎

Commit 1ad2ddd1 authored by liuran's avatar liuran

修改会员基础信息

parent 16fa571b
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head> <head>
<th:block th:include="include :: header('会员设置')" /> <th:block th:include="include :: header('会员设置')" />
<th:block th:include="include :: bootstrap-fileinput-css" />
</head> </head>
<style> <style>
.avatar_img { .avatar_img {
...@@ -22,7 +23,8 @@ ...@@ -22,7 +23,8 @@
clear: both; clear: both;
} }
.interests_item { .interests_item {
width: 300px; width: 500px;
height: 700px;
float: left; float: left;
margin-left: 126px !important; margin-left: 126px !important;
} }
...@@ -35,12 +37,92 @@ ...@@ -35,12 +37,92 @@
margin-bottom: 10px; margin-bottom: 10px;
} }
.interests_item .go-member-item { .interests_item .go-member-item {
width: 150px; display: inline-block;
width: 80px;
padding: 5px 0; padding: 5px 0;
text-align: center; text-align: center;
background: #0d8ddb; background: #0d8ddb;
color: #fff; color: #fff;
} }
.interests_item .go-member-item.del_mermber {
background: #f00;
}
.coupe_pop, .cover_pop {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, .5);
display: flex;
justify-content: center;
align-items: center;
}
.pop_inner {
width: 500px;
height: 600px;
padding: 10px;
background: #fff;
}
.pop_inner .control-label{
width: 100%;
}
.pop_inner .col-sm-10{
width: 100%;
}
.pop_inner .form-group {
float: left;
padding-top: 20px;
}
.pop_inner .form-group .discount {
padding-top: 10px;
}
.pop_btns {
float: left;
width: 100%;
text-align: right;
}
.pop_btns .confirm_btn{
display: inline-block;
width: 80px;
padding: 5px 0;
text-align: center;
background: #0d8ddb;
color: #fff;
}
.member-coupes-item ul{
padding-left: 0;
text-align: left;
padding: 10px;
border: 1px solid #e5e6e7;
margin-bottom: 10px;
}
.member-coupes-item ul .member-coupes-inner{
display: flex;
justify-content: space-between;
}
.member-coupes-item ul .member-coupes-inner .member-coupes-detail{
display: flex;
align-items: center;
}
.member-coupes-item ul .member-coupes-inner .member-coupes-detail span{
padding-right: 10px;
}
.member-coupes-item ul .member-coupes-inner .member-coupes-bth{
}
.member-coupes-bth span {
display: inline-block;
width: 40px;
padding: 5px 0;
text-align: center;
background: #0d8ddb;
color: #fff;
}
.member-coupes-bth .delCoupes{
margin-left: 5px;
background: #f00;
}
</style> </style>
<body class="gray-bg" style="font: 14px Helvetica Neue, Helvetica, PingFang SC, 微软雅黑, Tahoma, Arial, sans-serif !important;"> <body class="gray-bg" style="font: 14px Helvetica Neue, Helvetica, PingFang SC, 微软雅黑, Tahoma, Arial, sans-serif !important;">
<section class="section-content"> <section class="section-content">
...@@ -76,7 +158,7 @@ ...@@ -76,7 +158,7 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">会员banner:</label> <label class="col-sm-2 control-label">会员banner:</label>
<div class="text-center"> <div class="text-center">
<p class="user-info-head avatar_img" onclick="avatar(1)"> <p class="user-info-head avatar_img" onclick="icon(this, 1)">
<img class="img-circle img-lg memberBanner" th:src="(${#strings.isEmpty(member.avatar)}) ? @{/img/profile.jpg} : @{${member.avatar}}" th:onerror="'this.src=\'' + @{'/img/profile.jpg'} + '\''"> <img class="img-circle img-lg memberBanner" th:src="(${#strings.isEmpty(member.avatar)}) ? @{/img/profile.jpg} : @{${member.avatar}}" th:onerror="'this.src=\'' + @{'/img/profile.jpg'} + '\''">
</p> </p>
</div> </div>
...@@ -85,24 +167,24 @@ ...@@ -85,24 +167,24 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">会员小尾巴:</label> <label class="col-sm-2 control-label">会员小尾巴:</label>
<div class="text-center"> <div class="text-center">
<p class="user-info-head avatar_img" onclick="avatar(2)" > <p class="user-info-head avatar_img" onclick="icon(this ,2)" >
<img class="img-circle img-lg memberLast" th:src="(${#strings.isEmpty(member.icon)}) ? @{/img/log.png} : @{${member.icon}}" th:onerror="'this.src=\'' + @{'/img/log.png'} + '\''"> <img class="img-circle img-lg memberLast" th:src="(${#strings.isEmpty(member.icon)}) ? @{/img/log.png} : @{${member.icon}}" th:onerror="'this.src=\'' + @{'/img/log.png'} + '\''">
</p> </p>
</div> </div>
</div> </div>
<div class="form-group"> <!-- <div class="form-group">-->
<label class="col-sm-2 control-label">是否限购:</label> <!-- <label class="col-sm-2 control-label">是否限购:</label>-->
<div class="col-sm-10"> <!-- <div class="col-sm-10">-->
<div class="radio-box"> <!-- <div class="radio-box">-->
<input type="radio" id="radio1" th:field="*{limitation}" name="limitation" value="0"> <!-- <input type="radio" id="radio1" th:field="*{limitation}" name="limitation" value="0">-->
<label for="radio1"></label> <!-- <label for="radio1">否</label>-->
</div> <!-- </div>-->
<div class="radio-box"> <!-- <div class="radio-box">-->
<input type="radio" id="radio2" th:field="*{limitation}" name="limitation" value="1"> <!-- <input type="radio" id="radio2" th:field="*{limitation}" name="limitation" value="1">-->
<label for="radio2"></label> <!-- <label for="radio2">是</label>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">会员弹窗文案:</label> <label class="col-sm-2 control-label">会员弹窗文案:</label>
<div class="col-sm-10"> <div class="col-sm-10">
...@@ -159,17 +241,40 @@ ...@@ -159,17 +241,40 @@
<input type="text" class="form-control" name="validityTime" placeholder="请输入有效时间" th:value="${memberPrice.days}"/> <input type="text" class="form-control" name="validityTime" placeholder="请输入有效时间" th:value="${memberPrice.days}"/>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-2 control-label">双倍积分:</label>
<div class="col-sm-10">
<div class="radio-box">
<input type="radio" id="integral1" name="integral" value="1" th:attr="checked=${member.integralRate == 1}"/>
<label for="radio1"></label>
</div>
<div class="radio-box">
<input type="radio" id="integral2" name="integral" value="2" th:attr="checked=${member.integralRate == 2}"/>
<label for="radio2"></label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="button" class="btn btn-sm btn-primary" onclick="submitMemberShip()"><i class="fa fa-check"></i>保 存</button>&nbsp;
<button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
</div>
</div>
</form>
<form class="form-horizontal" id="form-membercoupe-edit">
<div class="interests_column"> <div class="interests_column">
<label>权益描述:</label> <div class="form-group">
<ul th:each="mr:${memberRightsList}"> <label class="col-sm-2 control-label">权益描述:</label>
</div>
<ul th:each="mr:${memberRightsList}" class="interests_inner">
<div class="form-group interests_item"> <div class="form-group interests_item">
<div class="text-center"> <div class="text-center">
<p class="user-info-head avatar_img" onclick="icon(this)"> <p class="user-info-head avatar_img vip_icon" onclick="icon(this)">
<img class="img-circle img-lg interestsIcon" th:src="${mr.cover}"/> <img class="img-circle img-lg interestsIcon" id="interestsIcon" th:src="${mr.cover}"/>
</p> </p>
<input type="text" class="form-control" name="interestsTitle" placeholder="请输入标题" th:value="${mr.title}"/> <input type="text" class="form-control" id="interestsTitle" name="interestsTitle" placeholder="请输入标题" th:value="${mr.title}"/>
<input type="text" class="form-control" name="interestsSubTitle" placeholder="请输入副标题" th:value="${mr.subTitle}"/> <input type="text" class="form-control" id="interestsSubTitle" name="interestsSubTitle" placeholder="请输入副标题" th:value="${mr.subTitle}"/>
<textarea class="form-control" name="interestsDesc" placeholder="详情内容" th:value="${mr.detail}"></textarea> <textarea class="form-control" id="interestsDesc" name="interestsDesc" placeholder="详情内容" th:value="${mr.detail}"></textarea>
<div class="member-coupes-item"> <div class="member-coupes-item">
<ul th:each="mrc:${couponMemberDtoListMap.get(mr.mrightsId)}"> <ul th:each="mrc:${couponMemberDtoListMap.get(mr.mrightsId)}">
<div class="member-coupes-inner"> <div class="member-coupes-inner">
...@@ -195,37 +300,23 @@ ...@@ -195,37 +300,23 @@
</div> </div>
<div class="member-coupes-bth"> <div class="member-coupes-bth">
<span onclick="editCoupes(this)">编辑</span> <span onclick="editCoupes(this)">编辑</span>
<span onclick="delCoupes(this)">删除</span> <span class="delCoupes" onclick="delCoupes(this)">删除</span>
</div> </div>
</div> </div>
</ul> </ul>
</div> </div>
<div class="member-coupes" onclick="addCoupes(this)">+添加券<br/>*全场券不需要重复添加 <div class="member-coupes" onclick="addCoupes(this)">+添加券<br/>*全场券不需要重复添加</div>
</div>
<div class="go-member-item" onclick="addColumn(this)">继续添加</div> <div class="go-member-item" onclick="addColumn(this)">继续添加</div>
<div class="go-member-item save_mermber" onclick="saveColumn(this, 1)">保存</div>
<div class="go-member-item del_mermber" onclick="saveColumn(this, 2)">删除</div>
</div> </div>
</div> </div>
</ul> </ul>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">双倍积分:</label> <div class="col-sm-offset-2 col-sm-10">
<div class="col-sm-10">
<div class="radio-box">
<input type="radio" id="integral1" name="integral" value="1" th:attr="checked=${member.integralRate == 1}"/>
<label for="radio1"></label>
</div>
<div class="radio-box">
<input type="radio" id="integral2" name="integral" value="2" th:attr="checked=${member.integralRate == 2}"/>
<label for="radio2"></label>
</div>
</div> </div>
</div> </div>
<!-- <div class="form-group">-->
<!-- <div class="col-sm-offset-2 col-sm-10">-->
<!-- <button type="button" class="btn btn-sm btn-primary" onclick="submitMemberShip()"><i class="fa fa-check"></i>保 存</button>&nbsp;-->
<!-- <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>-->
<!-- </div>-->
<!-- </div>-->
</form> </form>
</div> </div>
...@@ -241,11 +332,112 @@ ...@@ -241,11 +332,112 @@
</div> </div>
</div> </div>
</div> </div>
<div class="cover_pop" style="display: none">
<div class="pop_inner">
<input type="hidden" class="coverFunNum"/>
<input type="hidden" class="coverIndex"/>
<input type="hidden" class="coverCon"/>
<input type="hidden" class="mermberCon"/>
<input type="hidden" class="bannerCon"/>
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<div class="file-loading">
<input id="fileinput-demo-1" type="file" name="file" data-browse-on-zone-click="true"
data-msg-placeholder="Select {files} for upload...">
<input hidden id="coverImg" name="coverImg">
</div>
</div>
<div class="pop_btns">
<div class="confirm_btn" onclick="popBtn(2)">确认</div>
<div class="confirm_btn confirm_cancel" onclick="popBtn(0)">取消</div>
</div>
</div>
</div>
<div class="coupe_pop" style="display: none">
<div class="pop_inner">
<input type="hidden" class="parentsIndex"/>
<input type="hidden" class="childIndex"/>
<div class="col-sm-10">
<input type="text" name="coupeAdd_title" placeholder="券标题"/>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">类别:</label>
<div class="col-sm-10">
<div class="radio-box">
<label for="radio1" onclick="radioType(this)">
<input type="radio" id="coupeAdd1" name="coupeAdd_type" value="0"/> 全场
</label>
</div>
<div class="radio-box">
<label for="radio2" onclick="radioType(this)">
<input type="radio" id="coupeAdd2" onclick="radioType(this)" name="coupeAdd_type" value="1"/>演出
</label>
</div>
<div class="radio-box">
<label for="radio2" onclick="radioType(this)">
<input type="radio" id="coupeAdd3" onclick="radioType(this)" name="coupeAdd_type" value="2"/>商品
</label>
</div>
<div class="radio-box">
<label for="radio2" onclick="radioType(this)">
<input type="radio" id="coupeAdd4" onclick="radioType(this)" name="coupeAdd_type" value="3"/>优先购买
</label>
</div>
</div>
</div>
<div class="form-group alltrack">
<label class="col-sm-2 control-label">类型:</label>
<div class="col-sm-10">
<div class="radio-box">
<label for="radio1" onclick="coupetType(this)">
<input type="radio" id="coupetypr1" name="coupe_type" value="0"/>满减券
</label>
</div>
<div class="radio-box">
<label for="radio2" onclick="coupetType(this)">
<input type="radio" id="coupetypr2" name="coupe_type" value="1"/>代金券
</label>
</div>
</div>
<div class="col-sm-10 discount">
<div class="coupetypr_discount">满 ¥ <input type="text"/> 减 ¥ <input type="text"/></div>
<div class="coupetypr_price" style="display: none;">金额 ¥ <input type="text"/></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">数量:</label>
<div class="col-sm-10">
<input type="text"/>
</div>
</div>
<div class="form-group alltrack_limit">
<label class="col-sm-2 control-label">使用限制:</label>
<div class="col-sm-10">
<div class="radio-box">
<label for="radio1" onclick="limitType(this)">
<input type="radio" id="limittypr1" name="limit_type" value="0"/> 叠加
</label>
</div>
<div class="radio-box">
<label for="radio2" onclick="limitType(this)">
<input type="radio" id="limittypr2" name="limit_type" value="1"/> 限制
</label>
</div>
</div>
</div>
<div class="pop_btns">
<div class="confirm_btn" onclick="popBtn(1)">确认</div>
<div class="confirm_btn confirm_cancel" onclick="popBtn(0)">取消</div>
</div>
</div>
</div>
</section> </section>
<th:block th:include="include :: footer" /> <th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-fileinput-js"/> <th:block th:include="include :: bootstrap-fileinput-js"/>
<th:block th:include="include :: bootstrap-fileinput-css" />
<script th:inline="javascript"> <script th:inline="javascript">
var member = [[${member}]]; var member = [[${member}]];
console.log(member); console.log(member);
...@@ -256,71 +448,103 @@ ...@@ -256,71 +448,103 @@
var memberPrice = [[${memberPrice}]]; var memberPrice = [[${memberPrice}]];
console.log(member); console.log(member);
// var platformUrl = "[[${platformUrl}]]"; var prefix = ctx + "adam/member";
function icon (obj) { // 弹窗
$(function () {
$("#fileinput-demo-1").fileinput({
'theme': 'explorer-fas',
// 'uploadUrl': "/kylin/banners/upload3",
// 'uploadUrl': "http://127.0.0.1:9003" + "/platform/basicServices/alOss/upload",
'uploadUrl': "https://devplatform.zhengzai.tv/platform/basicServices/alOss/upload",
"uploadExtraData": {
"pathName" : "banner",
"buckType" : 1
},
// overwriteInitial: false,
// initialPreviewAsData: true,
autoReplace: true,
dropZoneTitle: "请上传文件",
maxFileCount: 1
});
$("#fileinput-demo-1").on("fileuploaded", function (event, data, previewId, index) {
$('.coverCon').val('https://img.zhengzai.tv/' + data.response.data.ossPath);
});
});
function limitType (obj) {
$(obj).find('input').val();
}
function radioType (obj) {
var typeRadio = $(obj).find('input').val();
if (typeRadio == 3) {
$('.alltrack').hide();
$('.alltrack_limit').show();
} else {
$('.alltrack').show();
$('.alltrack_limit').hide();
}
}
function coupetType (obj) {
var typeCoupe = $(obj).find('input').val();
if (typeCoupe == 1) {
$('.coupetypr_price').show();
$('.coupetypr_discount').hide();
} else {
$('.coupetypr_price').hide();
$('.coupetypr_discount').show();
}
}
function icon (obj, num) {
$('.coverFunNum').val(num);
var addIconIndex = $('.vip_icon').index($(obj));
$('.coverIndex').val(addIconIndex);
$('.cover_pop').show();
} }
function delCoupes (obj) { function delCoupes (obj) {
if ($(obj).parents('.member-coupes-item').find('.member-coupes-inner').length > 1) { if ($(obj).parents('.member-coupes-item').find('.member-coupes-inner').length > 1) {
$(obj).parents('.member-coupes-inner').remove(); $(obj).parents('.member-coupes-inner').remove();
} }
} }
function addCoupes (obj) { function addCoupes (obj) {
$(obj).prev().prepend($(obj).prev().find('.member-coupes-inner').prop('outerHTML')) var addItemIndex = $('.member-coupes').index($(obj));
} $('.parentsIndex').val(addItemIndex);
function addColumn (obj) { $('.coupe_pop').show();
let appendDom = $(obj).parents('.interests_column');
appendDom.append(appendDom.find('.interests_item').prop('outerHTML'));
} }
function avatar (num) { // 弹窗确认取消按钮
if (num == 1) { function popBtn (num) {
/*用户管理-头像*/ if (num == 0) {
var url = 'zhengzai/html/upload.html'; $('.cover_pop').hide();
top.layer.open({ $('.coupe_pop').hide();
type: 2, } else if (num == 2) {
area: ['600px', '470px'], if ($('.coverFunNum').val() == 1) {
fix: false, var bannerCon = $('.coverCon').val();
//不固定 $('.memberBanner').attr('src', bannerCon);
maxmin: true, } else if ($('.coverFunNum').val() == 2) {
shade: 0.3, var mermberCon = $('.coverCon').val();
title: "会员banner", $('.memberLast').attr('src', mermberCon);
content: url, } else {
btn: ['确定', '关闭'], var coverIndex = $('.coverIndex').val();
// 弹层外区域关闭 var coverCon = $('.coverCon').val();
shadeClose: true, $('.vip_icon').find('img').eq(coverIndex).attr('src', coverCon);
yes: function(index, layero) {
var vipBannerSrc = 'https://img.zhengzai.tv/' + window.localStorage.getItem('vipBanner');
$(".memberBanner").attr('src', vipBannerSrc);
top.layer.closeAll()
},
cancel: function(index) {
return true;
} }
}); $('.cover_pop').hide();
} else { } else {
var url = 'zhengzai/html/uploadMember.html'; var itemIndex = $('.parentsIndex').val();
top.layer.open({ console.log()
type: 2, // $(obj).prev().prepend($(obj).prev().find('.member-coupes-inner').prop('outerHTML'))
area: ['600px', '470px'], $('.cover_pop').hide();
fix: false,
//不固定
maxmin: true,
shade: 0.3,
title: "会员banner",
content: url,
btn: ['确定', '关闭'],
// 弹层外区域关闭
shadeClose: true,
yes: function(index, layero) {
var vipLastSrc = 'https://img.zhengzai.tv/' + window.localStorage.getItem('vipLast');
$(".memberLast").attr('src', vipLastSrc);
top.layer.closeAll()
},
cancel: function(index) {
return true;
} }
});
} }
function addColumn (obj) {
let appendDom = $(obj).parents('.interests_column');
appendDom.append(appendDom.find('.interests_item').prop('outerHTML'));
$.operate.save(prefix + "/create", data);
} }
/*基础信息-修改*/ /*基础信息-修改*/
...@@ -371,65 +595,56 @@ ...@@ -371,65 +595,56 @@
function submitMemberInfo() { function submitMemberInfo() {
if ($.validate.form()) { if ($.validate.form()) {
let formArr = []; var formData = $('#form-member-edit').serializeArray();
formArr = $('#form-member-edit').serializeArray(); formData.push({"name": "avatar", "value": $(".memberBanner").attr('src')});
let subArr = {}; formData.push({"name": "icon", "value": $(".memberLast").attr('src')});
for (var i in formArr) { formData.push({"name": "name", "value": member.name});
if (formArr[i].name == 'interestsDetail') { $.operate.save(prefix + "/edit_basic", formData);
subArr.interestsDetail = formArr[i].value;
}
if (formArr[i].name == 'limitation') {
subArr.limitation = formArr[i].value;
} }
if (formArr[i].name == 'memberId') {
subArr.memberId = formArr[i].value;
} }
if (formArr[i].name == 'title') {
subArr.title = formArr[i].value;
}
if (formArr[i].name == 'notes') {
subArr.notes = formArr[i].value;
}
if (formArr[i].name == 'onsale') {
subArr.onsale = formArr[i].value;
}
if (formArr[i].name == 'subTitle') {
subArr.subTitle = formArr[i].value;
}
}
subArr.avatar = $(".memberBanner").attr('src');
subArr.icon = $(".memberLast").attr('src');
$.ajax({
type : "POST",
contentType: "application/json;charset=UTF-8",
url : "https://devadam.zhengzai.tv/adam/member/edit_basic",
data : subArr,
success : function(res) {
console.log(res);
},
error : function(e){
console.log(e);
}
});
}
}
/*会员套餐-修改*/
$("#form-membership-edit").validate({
onkeyup: false,
rules:{
}, function submitMemberShip () {
messages: { var MemberShipData = $('#form-membership-edit').serializeArray();
MemberShipData.push({"name": "memberId", "value": member.memberId});
$.operate.saveModal(prefix + "/edit_price", MemberShipData);
}
}, function saveColumn(obj, num) {
focusCleanup: true var objDom = $(obj).parent().parent();
var domIndex = $('.interests_item').index(objDom);
var postData = [];
postData.push({
"name": "cover",
"value": objDom.find('#interestsIcon').attr('src')
}, {
"name": "detail",
"value": objDom.find('#interestsDesc').val()
}, {
"name": "memberId",
"value": member.memberId
}, {
"name": "seqNo",
"value": domIndex
}, {
"name": "state",
"value": num
}, {
"name": "subTitle",
"value": objDom.find('#interestsSubTitle').val()
}, {
"name": "title",
"value": objDom.find('#interestsTitle').val()
}); });
function submitMemberShip () { if (num == 2) {
if ($.validate.form("form-membership-edit")) { postData.push({"name": "mrightsId", "value" : memberRightsList[domIndex].mrightsId});
$.operate.saveModal(ctx + "system/user/profile/resetPwd", $('#form-membership-edit').serialize()); objDom.remove();
} else {
if (memberRightsList[domIndex]) {
postData.push({"name": "mrightsId", "value" : memberRightsList[domIndex].mrightsId});
}
} }
$.operate.saveModal(prefix + "/edit_rights", postData);
} }
</script> </script>
</body> </body>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment