<!DOCTYPE HTML>
|
<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
|
<head>
|
<meta charset="utf-8">
|
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
|
<meta name="renderer" content="webkit|ie-comp|ie-stand">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport"
|
content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
|
<meta http-equiv="Cache-Control" content="no-siteapp"/>
|
<!-- 本框架基本脚本和样式 -->
|
<script type="text/javascript"
|
th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
|
<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script>
|
|
</head>
|
<body class=" container-fluid">
|
<div class="pd-10">
|
<!-- 搜索框部分start -->
|
<div class="row form-head">
|
<form class="form-inline" id="serchform">
|
<div class="form-group mr-20">
|
|
<div class="btn-group search-list mt-10" data-for="search-text">
|
<input autocomplete="off" id="search-text" name="vipName" placeholder="会员名称"
|
type="text" class="form-control">
|
<input autocomplete="off" id="search-text" name="phone" placeholder="手机号码"
|
type="text" class="form-control">
|
<input autocomplete="off" id="search-text" name="vipNo" placeholder="会员编号"
|
type="text" class="form-control">
|
</div>
|
</div>
|
<div class="form-group mr-20 mt-10">
|
<label >会员类型</label>
|
<select class="form-control autoFull"
|
th:data-url="@{/admin/dataDictionary/showDataDictionary}"
|
data-param="{type:'会员类型'}"
|
data-value="name"
|
name="vipType"
|
id="vipType" >
|
<option value="">--请选择会员类型--</option>
|
</select>
|
</div>
|
|
<div class="form-group mr-20 mt-10">
|
<label >到店途径</label>
|
<select class="form-control autoFull select2" style="width: 200px;height:34px;"
|
th:data-url="@{/admin/customerDictionary/getListByParentCode/DDTJ}"
|
data-value="value"
|
name="arrivalWay"
|
id="arrivalWay" >
|
<option value="">--请选择到店途径--</option>
|
</select>
|
</div>
|
<div class="form-group mr-20 mt-10">
|
<label >会员活跃度</label>
|
<select class="form-control autoFull"
|
th:data-url="@{/admin/dataDictionary/showDataDictionary}"
|
data-param="{type:'会员活跃度'}"
|
data-value="name"
|
name="vipState"
|
id="vipState">
|
<option value="" >--请选择会员活跃度--</option>
|
</select>
|
</div>
|
<div class="form-group mr-20 mt-10">
|
<label >健康顾问</label>
|
<select id="staffId" class="form-control autoFull select2"
|
th:data-url="@{/admin/all}"
|
data-value="suId"
|
data-filed="suName"
|
name="staffId"
|
>
|
<option value="">--请选择健康顾问--</option>
|
</select>
|
</div>
|
<div class="form-group mr-20 mt-10">
|
<label >是否新客户</label>
|
<select class="form-control "
|
name="isDeal" >
|
<option value="" >--请选择--</option>
|
<option value="1" >是</option>
|
<option value="2" >否</option>
|
</select>
|
</div>
|
<!-- <div class="form-group mr-20 mt-10">-->
|
<!-- <label >所属门店</label>-->
|
<!-- <select class="form-control autoFull"-->
|
<!-- th:data-url="@{/hiveErp/shopInfo/findShopByRole}"-->
|
<!-- data-value="id"-->
|
<!-- data-filed="shopName"-->
|
<!-- name="shopId"-->
|
<!-- id="shopId" >-->
|
<!-- <option value="">--请选择门店--</option>-->
|
<!-- </select>-->
|
<!-- </div>-->
|
<div class="form-group">
|
<button matrix:btn="vipInfo-add" onclick="myGrid.serchData(1)" type="button"
|
class="btn btn-sm btn-info">
|
<i class="fa fa-search "></i> 搜索
|
</button>
|
<button type="reset" class="btn btn-sm btn-info ">
|
<i class="fa fa-refresh "></i> 重置
|
</button>
|
</div>
|
</form>
|
</div>
|
<div class="row mt-10">
|
|
<!-- 功能按钮部分 -->
|
<div id="option-bar" >
|
<button matrix:btn="vipInfo-edit" onclick="openEdit()" type="button" class="btn btn-info btn-sm"><i class="fa fa-edit" ></i> 编辑</button>
|
<button matrix:fn="servicefollow" onclick="openFollow()" type="button" class="btn btn-info btn-sm"><i class="fa fa-edit" ></i> 跟进记录</button>
|
<button matrix:fn="servicefollow" onclick="openArchieves()" type="button" class="btn btn-info btn-sm"><i class="fa fa-edit" ></i> 客户档案</button>
|
<button matrix:btn="vipInfo-projTaocan" onclick="openProj()" type="button" class="btn btn-info btn-sm"><i class="fa fa-cube"></i> 项目管理</button>
|
<button matrix:btn="vipInfo-projTaocan" onclick="openTc()" type="button" class="btn btn-info btn-sm"><i class="fa fa-cubes"></i> 套餐管理</button>
|
<button matrix:btn="vipInfo-projTaocan" onclick="openMoneyCard()" type="button" class="btn btn-info btn-sm"><i class="fa fa-credit-card"></i> 充值卡管理</button>
|
|
<button onclick="importProjUse()" type="button" class="btn btn-info btn-sm"><i class="fa fa-history"></i> 导入项目</button>
|
|
<button matrix:fn="orderClub" onclick="openOrder()" type="button" class="btn btn-info btn-sm"><i class="fa fa-history"></i> 消费订单</button>
|
<button matrix:fn="serviceClub" onclick="openServiceOrder()" type="button" class="btn btn-info btn-sm"><i class="fa fa-history"></i> 服务单</button>
|
<button matrix:btn="vipInfo-add" onclick="openAdd()" type="button" class="btn btn-info btn-sm"><i class="fa fa-plus" ></i> 新增</button>
|
<button matrix:btn="vipInfo-exportExcel" onclick="exportExcel()" type="button" class="btn btn-info btn-sm"><i class="fa fa-download" ></i> 导出</button>
|
<button matrix:btn="vipInfo-allot" onclick="updateVipInfos()" type="button" class="btn btn-info btn-sm"><i class="" ></i>批量设置健康顾问</button>
|
<button onclick="skinCheck()" type="button" class="btn btn-info btn-sm"><i class="" ></i>皮肤检测管理</button>
|
<button onclick="importVipInfo()" type="button" class="btn btn-info btn-sm"><i class="" ></i>导入会员</button>
|
<button matrix:btn="vipInfo-dels" onclick="myGrid.delItems()" type="button" class="btn btn-danger btn-sm"><i class="fa fa-trash" ></i>批量删除</button>
|
</div>
|
|
<!-- 数据表格部分 -->
|
<table id="mgrid">
|
<thead>
|
<tr>
|
<th data-checkbox="true" ></th>
|
<th data-formatter="MGrid.indexfn" data-align="center" data-width="30px" >序号</th>
|
<th data-field="vipNo" >会员编号</th>
|
<th data-field="vipName" data-formatter="getVipName">姓名</th>
|
<th data-field="sex">性别</th>
|
<th data-field="phone">手机号码</th>
|
<th data-field="vipType">会员类型</th>
|
<th data-field="vipState">会员活跃度</th>
|
<th data-field="arrivalWay">到店途径</th>
|
<th data-field="staffName">健康顾问</th>
|
<th data-field="validFlag" data-formatter="miniQuery">小程序查询权限</th>
|
<th data-field="staffName" data-formatter="buildOperation">操作</th>
|
</tr>
|
</thead>
|
</table>
|
<!-- 数据表格部分end -->
|
</div>
|
</div>
|
|
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
|
<script type="text/javascript">
|
var myGrid;
|
$(function(){
|
$(".select2").select2({height:'34px'});
|
//createDateDictionary();
|
MTools.autoFullSelect();
|
//有删除权限
|
var delUrl="";
|
delUrl=basePath+"/admin/vipInfo/del";
|
|
|
myGrid=
|
MGrid.initGrid({
|
url : basePath+"/admin/vipInfo/showVipInfoList",
|
delUrl : delUrl,
|
|
});
|
});
|
|
var btns=[];
|
btns[0]="";
|
function buildOperation(value, row, index) {
|
var html = "";
|
var desc;
|
if (row.validFlag == 1) {
|
desc = "关闭小程序查询权益";
|
} else {
|
desc = "开启小程序查询权益";
|
}
|
html += '<a class="text-info" href="javascript:void(0)" onClick="openVipDetail(\''+row.phone+'\')">查看详情</a> '
|
+ btns[0].replace("VALUE", row.id).replace("FLAG", row.validFlag).replace("DESC", desc);
|
return html;
|
}
|
|
function openVipDetail(value) {
|
layer.full(layer.open({
|
type : 2,
|
title : "会员详情",
|
area : [ MUI.SIZE_L, '450px' ],
|
maxmin : true,
|
content : [ basePath+'/admin/redirect/hive/beautySalon/vip?vipPhone=' + value ]
|
}));
|
}
|
|
function openVipDetail2(value) {
|
layer.full(layer.open({
|
type : 2,
|
title : "会员详情",
|
area : [ MUI.SIZE_L, '450px' ],
|
maxmin : true,
|
content : [ basePath+'/admin/redirect/hive/beautySalon/vip_detail?vipPhone=' + value ]
|
}));
|
}
|
function updateVipInfos() {
|
if(myGrid.getSelectItemsIds()==""){
|
layer.msg("请至少选择一名会员!", {
|
icon : 2
|
});
|
|
}else{
|
layer.open({
|
type : 2,
|
title : "批量设置健康顾问",
|
area: ['450px', '400px'],
|
maxmin : true,
|
shadeClose:false,
|
content : [ basePath+'/admin/redirect/hive/vip/vipInfo-list-setStaff' ]
|
});
|
}
|
}
|
|
/**
|
* 构建会员名称
|
*/
|
function getVipName(value, row, index){
|
if(row.isDeal==2){
|
return value+" <span class='label-danger'>新</span>"
|
}else{
|
return value;
|
}
|
}
|
|
function miniQuery(value, row, index) {
|
if(row.validFlag==1){
|
return "已开启"
|
}else{
|
return "已关闭";
|
}
|
}
|
|
|
function loodFlow(){
|
var id=myGrid.getSelectItemId();
|
layer.full(layer.open({
|
type : 2,
|
title : "操作流水",
|
area : [ MUI.SIZE_L, '450px' ],
|
maxmin : true,
|
content : [ basePath+'/admin/redirect/hive/vip/moneyCardUseFlow-list?vipId=' + id ]
|
}));
|
}
|
function openOrder(){
|
var vipName=myGrid.getSelectItemId("vipName");
|
layer.full(layer.open({
|
type : 2,
|
title : "消费记录",
|
area : [ MUI.SIZE_L, '450px' ],
|
maxmin : true,
|
content : [ basePath+'/admin/redirect/hive/operate/sysOrder-list?vipName=' + vipName ]
|
}));
|
}
|
|
function openServiceOrder(){
|
var vipName=myGrid.getSelectItemId("vipName");
|
layer.full(layer.open({
|
type : 2,
|
title : "服务单",
|
area : [ MUI.SIZE_L, '450px' ],
|
maxmin : true,
|
content : [ basePath+'/admin/redirect/hive/store/projService-list?vipName=' + vipName ]
|
}));
|
}
|
|
function openArchieves(){
|
var id=myGrid.getSelectItemId();
|
layer.full(layer.open({
|
type : 2,
|
title : "客户档案",
|
area : [ MUI.SIZE_L, '450px' ],
|
maxmin : true,
|
content : [ basePath+'/admin/redirect/hive/vip/vip-archives-pc?id=' + id ]
|
}));
|
}
|
//打开添加界面
|
function openAdd() {
|
layer.full(layer.open({
|
type : 2,
|
title : "添加会员信息",
|
area : [ MUI.SIZE_L, '450px' ],
|
content : [ basePath+'/admin/vipInfo/editForm' ]
|
}));
|
}
|
|
//打开编辑界面
|
function openEdit() {
|
var id=myGrid.getSelectItemId();
|
layer.full(layer.open({
|
type : 2,
|
title : "编辑会员信息",
|
area : [ MUI.SIZE_L, '450px' ],
|
maxmin : true,
|
content : [ basePath+'/admin/vipInfo/editForm?id=' + id ]
|
}));
|
}
|
|
|
function openFollow(){
|
var id=myGrid.getSelectItemId();
|
layer.open({
|
type : 2,
|
title : "会员跟进记录",
|
area : MUI.SIZE_M,
|
maxmin : true,
|
content : [ basePath+'/admin/redirect/hive/vip/followu-list?vipId=' + id ]
|
});
|
}
|
function createDateDictionary() {
|
$(".dds").each(
|
function() {
|
var type = $(this).attr("cc");
|
var _this = $(this);
|
//取服务器请求数据
|
$.AjaxProxy({
|
p : {
|
type : type
|
}
|
})
|
.invoke(
|
basePath+"/admin/dds/showDataDictionary",
|
function(loj) {
|
var html = '';
|
console.log(loj.getRowCount());
|
for (var i = 0; i < loj
|
.getRowCount(); i++) {
|
html += '<option value="'
|
+ loj
|
.getString(i,
|
"id")
|
+ '">'
|
+ loj.getString(i,
|
"name")
|
+ "</option>";
|
}
|
_this.html(html);
|
});
|
|
});
|
}
|
function openTc() {
|
var id=myGrid.getSelectItemId();
|
layer.open({
|
type: 2,
|
title: "会员套餐管理",
|
area: MUI.SIZE_M,
|
content : [ basePath+'/admin/redirect/hive/vip/viptc-list?vipId=' + id]
|
});
|
}
|
|
function openProj() {
|
var id=myGrid.getSelectItemId();
|
layer.open({
|
type: 2,
|
title: "会员项目管理",
|
area: MUI.SIZE_M,
|
content : [ basePath+'/admin/redirect/hive/vip/projUse-list?vipId=' + id]
|
});
|
}
|
function openMoneyCard() {
|
var id=myGrid.getSelectItemId();
|
layer.open({
|
type: 2,
|
title: "会员充值卡管理",
|
area: MUI.SIZE_M,
|
content : [ basePath+'/admin/redirect/hive/vip/moneyCardUse-list?vipId=' + id]
|
});
|
}
|
|
function openZongheCard() {
|
var id=myGrid.getSelectItemId();
|
layer.open({
|
type: 2,
|
title: "会员综合卡管理",
|
area: MUI.SIZE_M,
|
content : [ basePath+'/admin/redirect/hive/vip/zongheCardUse-list?vipId=' + id]
|
});
|
}
|
|
function skinCheck() {
|
var id=myGrid.getSelectItemId();
|
layer.open({
|
type: 2,
|
title: "皮肤检测管理",
|
area: MUI.SIZE_M,
|
content : [ basePath+'/admin/redirect/hive/vip/sysSkinCheckRecord-list?vipId=' + id]
|
});
|
}
|
|
function importProjUse() {
|
layer.open({
|
type: 2,
|
title: "导入项目",
|
area: [MUI.SIZE_L, '400px'],
|
content : [ basePath+'/admin/redirect/hive/vip/projUseImport-form']
|
});
|
}
|
|
function importVipInfo() {
|
layer.open({
|
type: 2,
|
title: "导入会员",
|
area: [MUI.SIZE_L, '400px'],
|
content : [ basePath+'/admin/vipInfo/toImportForm']
|
});
|
}
|
|
//导出
|
function exportExcel() {
|
var param=MForm.toUrlParam("#serchform");
|
window.location.href=basePath+"/admin/vipInfo/exportExcel?"+param;
|
}
|
|
function vipInfoValid(id, validFlag) {
|
var desc;
|
if (validFlag == 1) {
|
desc = "确认要关闭小程序查询权益?";
|
} else {
|
desc = "确认要开启小程序查询权益?";
|
}
|
MTools.handleItem(
|
basePath + '/admin/vipInfo/validFlagChange?id=' + id, desc, function () {
|
myGrid.serchData();
|
});
|
}
|
|
</script>
|
<script matrix:btn="vipInfo-miniQuery">
|
btns[0]='<a class="text-info" href="javascript:void(0)" onClick="vipInfoValid(\'VALUE\', \'FLAG\')" >DESC</a> '
|
</script>
|
</body>
|
</html>
|