文件
mashangyoujiu/Application/Retail/View/Mcoupon/appointlaunchcoupon.html

512 行
23 KiB
HTML
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<html>
<!--[1.1.32]-->
<head>
<meta charset="UTF-8">
<title>优惠券管理</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="__PUBLIC__/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="__PUBLIC__/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="__PUBLIC__/Retail/css/myscroll.css"/>
<style>
.vipgrade{
display: inline-block;
padding: 4px 18px 4px 8px;
margin: 6px;
border: 1px solid rgba(0,0,0,0.2);
position: relative;
font-size: 14px;
}
.vipgradetitle{
width:100%;
box-sizing: border-box;
padding: 4px 18px 4px 8px;
box-shadow: 0px 0px 1px rgba(0,0,0,0.1);
font-weight: bold;
}
span.layui-input{
border: none;
line-height:38px ;
}
.layui-form-label{
width: 140px;
}
.layui-card-body .layui-table{
margin: 0;
}
.layui-form-item{
margin-bottom: 0;
}
table{
table-layout:fixed;
}
</style>
</head>
<body>
<div id="app">
<div class="layui-row layui-col-space15">
<div class="layui-col-sm12">
<div class="layui-card">
<div class="layui-card-body layuiadmin-card-list">
<form class="layui-form" action="" style="min-width: 1000px;" id="couponform">
<div class="layui-form-item">
<label class="layui-form-label">优惠券名称</label>
<div class="layui-input-inline">
<span class="layui-input">{$coupon['coupon_name']}</span>
</div>
<label class="layui-form-label">优惠券可用门店</label>
<div class="layui-input-inline" style="width:auto">
<volist name="coupon['storelist']" id="item">
<div class="vipgrade">{$item['storetag']}</div>
</volist>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">优惠券库存</label>
<div class="layui-input-inline">
<span class="layui-input">{$coupon['coupon_allnum']}张</span>
</div>
<label class="layui-form-label">优惠券剩余</label>
<div class="layui-input-inline">
<span class="layui-input">{$coupon['coupon_num']}张</span>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">优惠券使用门槛</label>
<div class="layui-input-inline">
<span class="layui-input">{$coupon['needmoney']}元</span>
</div>
<label class="layui-form-label">优惠券面额</label>
<div class="layui-input-inline">
<span class="layui-input">{$coupon['reducemoney']}元</span>
</div>
</div>
<div class="layui-form-mid layui-word-aux" style="margin-left: 110px;">
发放优惠券时,优先从序号小的发放,直到所选会员全部发放完毕,或优惠券全部发放(剩余库存为0)
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择会员</label>
<div class="layui-input-inline">
<button type="button" class="layui-btn" @click="chooseVip(1)">选择会员</button>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<div class="layui-card">
<div class="layui-card-body">
<div style="padding-right: 8px;">
<table lay-filter="priceTag" class="layui-table">
<thead>
<tr>
<th style="width: 60px;">序号</th>
<th>姓名/昵称</th>
<th>手机号</th>
<th>实体卡</th>
<th>会员卡类型</th>
<th>余额</th>
<th>积分</th>
<th>操作</th>
</tr>
</thead>
</table>
</div>
<div style="height: 400px;overflow-y: scroll;">
<table lay-filter="priceTag" class="layui-table">
<tbody>
<template v-for="(item,index) in checkedVipArr">
<tr>
<td style="width: 60px;">{{index+1}}</td>
<td>
<div v-if="item['namenickname']" v-html="item['namenickname']"></div>
</td>
<td>
<div v-if="item['mobile_phone']">{{item['mobile_phone']}}</div>
</td>
<td>
<div v-if="item['card_key']">{{item['mobile_phone']}}</div>
</td>
<td>
<div v-if="item['grade']">{{item['grade']}}</div>
</td>
<td>
<div v-if="item['balance']">{{item['balance']}}</div>
</td>
<td>
<div v-if="item['integral']">{{item['integral']}}</div>
</td>
<td>
<div class="layui-btn layui-btn-xs" @click="delcheckedVipArr(index)">移除</div>
</td>
</tr>
</template>
<template v-if="!checkedVipArr || checkedVipArr.length==0">
<tr>
<td colspan="5" style="text-align: center">未选择</td>
</tr>
</template>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<hr>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-inline" style="width:auto">
<button type="button" class="layui-btn" @click="confirmLaunch">发放</button>
<button type="button" class="layui-btn" @click="returnBack">返回</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="myModal" style="display: none;min-height: 700px;">
<div class="layui-card" style="padding: 15px;">
<div class="layui-card-body">
<form action="" class="layui-form" onsubmit="return false;">
<div class="layui-form-item">
<div class="layui-form-item" style="margin-bottom: 0px;">
<div class="layui-input-inline">
<input type="text" class="layui-input" placeholder="昵称/手机号/实体卡" id="mykeyword">
</div>
<div class="layui-input-inline">
<select name="goods_class_id" id="goods_class_id">
<option value="0">--所有门店会员--</option>
<volist name="list" id="vo">
<option value="{$vo['id']}">--{$vo['storetag']}--</option>
</volist>
</select>
</div>
<div class="layui-input-inline">
<select name="status" id="vipStatus">
<option value="0">--所有会员--</option>
<option value="1">--正常会员--</option>
<option value="3">--已冻结会员--</option>
<option value="4">--已挂失会员--</option>
</select>
</div>
<br/>
<div class="layui-input-inline" style="margin-top: 10px">
<select name="grade" id="grade" lay-filter="grade">
<option value="-1&-1" data-min="-1" data-max="-1" selected="selected">--所有等级--</option>
<volist name="gradeArr" id="vo">
<option value="{$vo['min']}&{$vo['max']}" data-min="{$vo['min']}" data-max="{$vo['max']}">--{$vo['cardname']}--</option>
</volist>
</select>
</div>
<div class="layui-input-inline" style="margin-top: 10px">
<button type="button" class="layui-btn" id="mysearch">查询</button>
</div>
</div>
</div>
</form>
<hr>
<table class="layui-hide" id="test" lay-filter="test"></table>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm" type="button" lay-event="getCheckData">确定</button>
</div>
</script>
</div>
</div>
</div>
</body>
<script src="__PUBLIC__/layuiadmin/layui/layui.js"></script>
<script src="__PUBLIC__/login/js/vue2.5.16.js"></script>
<script type="text/javascript">
layui.config({
base: '__PUBLIC__/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['form','layer','table'],function () {
// 返回
var layer = layui.layer;
var $ = layui.$;
$('#submitlaunchcoupon').click(function () {
layer.confirm('确定要投放优惠券吗?',function (cindex) {
layer.close(cindex);
var loadindex = layer.load(1); //换了种风格
$.ajax({
url:"{:U('Retail/Mcoupon/launchcoupon')}",
data:$('#couponform').serialize(),
type:"post",
success:function (res) {
// console.log(res)
layer.close(loadindex);
if(res.status==1){
layer.msg(res.msg,{time:1800},function () {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
})
}else{
layer.msg(res.msg,{time:1800},function () {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
})
}
},error:function (error) {
layer.alert('出错了:'+JSON.stringify(error),function () {
layer.close(loadindex);
});
}
})
})
})
var table = layui.table;
var layer = layui.layer;
var form = layui.form;
var app = new Vue({
el:"#app",
data:function(){
return{
chooseVipArr:[],
checkedVipArr:[],//新增的数据
}
},
methods:{
returnBack:function () {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
},
chooseVip:function (num) {
if(num==1){
layer.open({
type: 1,
content: $('.myModal'),
title: "选择会员",
area: "80%",
btnAlign: 'c',
success:function () {
}
})
}
},
confirmLaunch:function () {
var checkedVipArr = this.checkedVipArr;
var length = checkedVipArr.length;
if(length==0){
layer.msg('请选择会员',{time:1500})
return ;
}
var ids = [];
for(var i=0;i<length;i++){
ids.push(checkedVipArr[i]['id']);
}
// console.log(ids,checkedVipArr);
var vm = this;
if(ids.length>0){
layer.confirm('确定要给选择的会员发放优惠券吗?',function () {
vm.doLaunch(ids);
})
}
},
doLaunch:function (arr) {
var ids = arr.join(',');
var load = layer.load(1);
var vm = this;
$.ajax({
url:"{:U('appointlaunchcoupon')}",
data:{
ids:ids,
id:"{$coupon['id']}"
},
type:"POST",
success:function (res) {
layer.close(load)
if(res.status==1){
layer.msg(res.msg,{time:1000},function () {
layer.closeAll()
vm.checkedVipArr=[];
table.reload('test');
});
}else{
res.msg = res.msg?res.msg:'发放失败';
layer.msg(res.msg,{time:1000},function () {
layer.closeAll()
});
}
},
error:function (error) {
layer.close(load)
layer.alert(JSON.stringify(error),function () {
layer.closeAll()
})
}
})
},
delcheckedVipArr:function (index) {
this.checkedVipArr.splice(index,1);
}
},
computed:{
waitarr:function () {
var arr = [];
var n = JSON.parse(JSON.stringify(this.checkedVipArr),true);
for(var i=0;i<n.length;i++){
var str = n[i]['id'];
arr[str] = n[i];
}
return arr;
}
},
watch:{
chooseVipArr:function (n,o) {
var vm = this;
if(n && n.length>0){
var waitarr = this.waitarr;
var checkedVipArr = this.checkedVipArr;
var hasaddarr = [];
var hasaddgoodsnameStr = '';
var canaddarr = [];
for(var i=0;i<n.length;i++){
var str = n[i]['id'];
if(waitarr[str]){
hasaddarr.push(n[i]);
if(n[i].goods_sku_id){
hasaddgoodsnameStr+= n[i]['goods_name']+'('+n[i]['sku_name']+'),';
}else{
hasaddgoodsnameStr+=n[i]['goods_name']+',';
}
}else{
canaddarr.push(n[i]);
}
}
checkedVipArr =checkedVipArr.concat(canaddarr);
this.checkedVipArr = checkedVipArr;
vm.chooseVipArr=[];
}
}
}
})
// 非规格商品选择框
//展示已知数据
table.render({
elem: '#test',
url: "{:U('VipBackstageRecharge/VipList')}",
toolbar: '#toolbarDemo',
defaultToolbar:['filter'],
cellMinWidth:120,
where:{
grademin:-1,
grademax:-1
},
cols: [
[{
type: 'checkbox'
}, {
field: 'index',
title: '序号',
width: 60
}, {
field: 'namenickname',
title: '姓名/昵称',
width: 180
}, {
field: 'mobile_phone',
title: '手机号',
width: 120
},{
field: 'card_key',
title: '实体卡',
width: 120
},{
field: 'birthday',
title: '生日',
width: 120,
hide:true
}, {
field: 'grade',
title: '会员卡类型',
width: 100
}, {
field: 'discount',
title: '折扣',
width: 100,
hide:true
}, {
field: 'balance',
title: '余额',
width: 100
}, {
field: 'integral',
title: '积分',
width: 100,
hide:true
}, {
field: 'storetag',
title: '激活门店',
hide:true
}, {
field: 'addtime',
title: '激活时间',
width:190,
hide:true
}, {
field: 'statusname',
title: '会员状态'
}
]
],
page: true
});
//头工具栏事件
table.on('toolbar(test)', function(obj){
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
switch(obj.event){
case 'getCheckData':
var data = checkStatus.data; //获取选中行数据
console.log(data);
if(data.length>0){
app.chooseVipArr = data;
layer.closeAll();
}else{
layer.msg('请选择会员',{time:1500})
}
break;
}
});
var keyword = "";
var grademin = -1;
var grademax = -1;
form.on('select(grade)', function(data){
var arr = data.value.split('&');
if(arr[0]){
grademin = arr[0];
}
if(arr[1]){
grademax = arr[1];
}
});
$('#mysearch').click(function () {
keyword = $('#mykeyword').val();
var cate = $('#goods_class_id').val();
var status = $('#vipStatus').val();
table.reload('test', {
page: {
curr: 1 //重新从第 1 页开始
}
, where: {
storeid: cate,
keyword: keyword,
status: status,
grademin:grademin,
grademax:grademax
}
});
})
})
</script>
</html>