define(['biz'], function (biz) { var model = {}; model.task = '';//当前任务JSON字符串 model.open = true;//类型选择器是否打开 //初始值 model.verbStyle = 'border: 1px solid #E5E6E7;'; model.reward = {goods:[],coupon:[]}; model.followreward = {coupon:[]}; model.reward2 = {coupon:[]}; model.reward3 = {coupon:[]}; model.page = 1; //初始化 model.init = function (task,reward,followreward) { model.reward.coupon = $('textarea[name="rewardcoupon"]').html(); model.reward.coupon = JSON.parse(model.reward.coupon); model.reward2.coupon = $('textarea[name="rewardcoupon2"]').html(); model.reward2.coupon = JSON.parse(model.reward2.coupon); model.reward3.coupon = $('textarea[name="rewardcoupon3"]').html(); model.reward3.coupon = JSON.parse(model.reward3.coupon); model.followreward.coupon = $('textarea[name="followrewardcoupon"]').html(); model.followreward.coupon = JSON.parse(model.followreward.coupon); if (!model.followreward.coupon) model.followreward.coupon = []; model.rewardInit(); //当前任务对象 if (!task){ model.task = {}; }else{ var taskObj = $('a[data-name='+task+']'); if(taskObj){ task = taskObj.attr('data-type'); model.task = JSON.parse(task); }else{ alert('任务不存在');return; } } //生成任务对象成功,关闭选择器,否则打开选择器重新选任务 if (model.task.id) { model.open = false; } model.select(); //选择任务类型 $('.widget').click(function () { model.task = JSON.parse($(this).attr('data-type')); model.open = false; //已选择 model.select(); }); //修改任务类型 $('#open').click(function () { model.open = true; model.select(); }); //截止时间 model.stopType(); $('input[name="stoptype"]').click(function () { model.stopType(); }); //重复领取 model.repeatType(); $('input[name="repeattype"]').click(function () { model.repeatType(); }); //选择了无需自动接任务 model.globalpickup(); $("input[name='picktype']").click(function () { model.globalpickup(); }); //奖励 // try { // //预处理奖励数据 // if (reward != undefined && reward.length>0) model.reward = JSON.parse(reward); // if (model.task.type_key == 'poster' && followreward) model.followreward = JSON.parse(followreward); // //清空变量防止重复初始化 // reward = undefined; // followreward = undefined; // //奖励初始化 // model.rewardInit(); // } //点击选择器 $('a[data-target="#selector"]').click(function () { model.getpage(1,$(this).attr('data-type')); }); //翻页 $(document).on('click','.pageselector',function(){ model.getpage($(this).attr('data-page'),model.pageType); }); //选择商品或优惠券 $(document).on('click','.selectit',function () { //获取数据 var data = {}; var id = parseInt( $(this).attr('data-id') ); if (id != undefined) data.id = id; var num = parseInt( $(this).parent().parent().find('.num').val()); if (num != undefined) data.num = isNaN(num) ? 1 : num; var price = parseFloat( $(this).parent().parent().find('.price').val()); if (model.pageType == 'goods'&& price != undefined) data.price = isNaN(price) ? parseFloat($(this).attr('data-price')):price; var title = $(this).parent().parent().find('.title').val(); if (model.pageType == 'goods'&& title != undefined) { data.title = title.trim() == ''? $(this).attr('data-title'): title; data.title = data.title.substring(0,10); } var couponname = $(this).parent().parent().find('.couponname').val(); if (model.pageType != 'goods'&& couponname != undefined){ data.couponname = couponname.trim() == '' ? $(this).attr('data-couponname'): couponname; data.couponname = data.couponname.substring(0,10); } if ($(this).hasClass('selected')){ //退选这一项 model.selectCancel(data); $(this).removeClass('selected').text('选择'); }else{ //选择这一项 model.selectit(data); } }) }; //退选这个 model.selectCancel = function (data) { var isDel = false; if (model.pageType == 'goods'){ if (model.reward.goods != undefined) $.each(model.reward.goods,function (i,goods) { if (goods.id == data.id){ model.reward.goods.splice(i,1); return false; } }); }else if (model.pageType == 'coupon'){ if (model.reward.coupon != undefined) $.each(model.reward.coupon,function (i,goods) { if (goods.id == data.id){ model.reward.coupon.splice(i,1); return false; } }); }else if (model.pageType == 'coupon2'){ if (model.reward2.coupon != undefined) $.each(model.reward2.coupon,function (i,goods) { if (goods.id == data.id){ model.reward2.coupon.splice(i,1); return false; } }); }else if (model.pageType == 'coupon3'){ if (model.reward3.coupon != undefined) $.each(model.reward3.coupon,function (i,goods) { if (goods.id == data.id){ model.reward3.coupon.splice(i,1); return false; } }); }else if(model.pageType == 'followcoupon'){ if (model.followreward.coupon != undefined) $.each(model.followreward.coupon,function (i,goods) { if (goods.id == data.id){ model.followreward.coupon.splice(i,1); return false; } }); } //操作dom model.rewardInit(); } //选择这个 model.selectit = function (data) { //保存数据 model.reward var isPush = true; if (model.pageType == 'goods'){ //商品 if (model.reward.goods != undefined) $.each(model.reward.goods,function (i,goods) { if (goods.id == data.id){ isPush = false; return false; } }); if (isPush) model.reward.goods.push(data); }else if (model.pageType == 'coupon'){ //优惠券 if (model.reward.coupon != undefined) $.each(model.reward.coupon,function (i,coupon) { if (coupon.id == data.id){ isPush = false; return false; } }); if (isPush) model.reward.coupon.push(data); }else if (model.pageType == 'followcoupon'){ //关注优惠券 if (model.followreward.coupon != undefined) $.each(model.followreward.coupon,function (i,coupon) { if (coupon.id == data.id){ isPush = false; return false; } }); if (isPush) model.followreward.coupon.push(data); }else if (model.pageType == 'coupon2'){ //优惠券 if (model.reward2.coupon != undefined) $.each(model.reward2.coupon,function (i,coupon) { if (coupon.id == data.id){ isPush = false; return false; } }); if (isPush) model.reward2.coupon.push(data); }else if (model.pageType == 'coupon3'){ //优惠券 if (model.reward3.coupon != undefined) $.each(model.reward3.coupon,function (i,coupon) { if (coupon.id == data.id){ isPush = false; return false; } }); if (isPush) model.reward3.coupon.push(data); } //操作dom model.rewardInit(); }, //打开选择器 model.select = function () { if (model.open){ $('#select').removeClass('hide'); $('#post').addClass('hide'); }else{ $('#select').addClass('hide'); $('#post').removeClass('hide'); } //设置任务类型名字 if (model.task.id){ $(".taskname").text(model.task.type_name); $("input[name='type']").val(model.task.type_key); //设置任务需求样式 model.require(); } }; //截止时间隐藏项显示 model.stopType = function () { var stopType = $('input[name="stoptype"]'); $.each(stopType,function () { var value = $(this).val(); $('#stoptype'+value).hide(); if($(this).is(':checked')){ $('#stoptype'+value).show(); } }); }; //重复领取隐藏项显示 model.repeatType = function () { var repeatType = $('input[name="repeattype"]'); $.each(repeatType,function () { var value = $(this).val(); $('#repeattype'+value).hide(); if($(this).is(':checked')){ $('#repeattype'+value).show(); } }); }; //任务需求 model.require = function () { $('#verb').text(model.task.verb); if (model.task.unit.length<1){ $('#unit').hide(); }else{ $('#unit').text(model.task.unit); $('#unit').show(); } if (model.task.numeric >0){ $('#number').show(); $('#verb').attr('style',false); }else{ $('#number').hide(); $('#verb').attr('style',model.verbStyle); } //指定商品选项 if (model.task.goods == 1){ $('#requiregoods').show(); }else{ $('#requiregoods').hide(); } if (model.task.type_key == 'poster'){ $('.justposter').show(); $('#scannotice').show(); }else{ $('.justposter').hide(); $('#scannotice').hide(); } }; //接取方式为无需接取global任务时 model.globalpickup = function () { if ($('#globalpickup').is(':checked')){ $('#repeat').hide(); $('#stop').hide(); }else{ $('#repeat').show(); $('#stop').show(); } }; //奖励数据初始化 model.rewardInit = function(){ if (model.reward) { if (model.reward.goods) { var rewardGoods = model.reward.goods; $('#goodsreward').empty(); $.each(rewardGoods, function (i, g) { var item = '
' + '' + '
' + '' + '特价商品 ' + '' + g.num + ' ' + '' + g.price + '' + ' ' + g.title + '' + '' + '
' + '
'; $('#goodsreward').append(item); //数据填充 var tr = $('#goodsreward'+g.id); tr.find('.selectit').addClass('selected').text('已选择'); tr.find('.price').val(g.price); tr.find('.num').val(g.num); tr.find('.title').val(g.title.substring(0,10)); }); // $('textarea[name="rewardgoods"]').text(JSON.stringify(model.reward.goods)); } if (model.reward.coupon) { var rewardCoupon = model.reward.coupon; $('#couponreward').empty(); $.each(rewardCoupon, function (i, g) { var item = '
' + '' + '
' + '' + '优惠券 ' + '' + g.num + '' + ' ' + g.couponname + '' + '' + '
' + '
'; $('#couponreward').append(item); //数据填充 var tr = $('#couponreward'+g.id); tr.find('.selectit').addClass('selected').text('已选择'); tr.find('.num').val(g.num); tr.find('.couponname').val(g.couponname.substring(0,10)); }); $('textarea[name="rewardcoupon"]').text(JSON.stringify(model.reward.coupon)); } } if (model.followreward.coupon){ var followrewardCoupon = model.followreward.coupon; $('#couponfollowreward').empty(); $.each(followrewardCoupon,function (i,g) { var item = '
'+ ''+ '
'+ ''+ '优惠券 '+ ''+g.num+' '+ ''+g.couponname+''+ ''+ '
'+ '
'; $('#couponfollowreward').append(item); //数据填充 var tr = $('#couponfollowreward'+g.id); tr.find('.selectit').addClass('selected').text('已选择'); tr.find('.num').val(g.num); tr.find('.couponname').val(g.couponname.substring(0,10)); }); $('textarea[name="followrewardcoupon"]').text(JSON.stringify(model.followreward.coupon)); } if (model.reward2.coupon) { var rewardCoupon = model.reward2.coupon; $('#couponreward_2').empty(); $.each(rewardCoupon, function (i, g) { var item = '
' + '' + '
' + '' + '优惠券 ' + '' + g.num + '' + ' ' + g.couponname + '' + '' + '
' + '
'; $('#couponreward_2').append(item); //数据填充 var tr = $('#couponreward_2'+g.id); tr.find('.selectit').addClass('selected').text('已选择'); tr.find('.num').val(g.num); tr.find('.couponname').val(g.couponname.substring(0,10)); }); $('textarea[name="rewardcoupon2"]').text(JSON.stringify(model.reward2.coupon)); } if (model.reward3.coupon) { var rewardCoupon = model.reward3.coupon; $('#couponreward_3').empty(); $.each(rewardCoupon, function (i, g) { var item = '
' + '' + '
' + '' + '优惠券 ' + '' + g.num + '' + ' ' + g.couponname + '' + '' + '
' + '
'; $('#couponreward_3').append(item); //数据填充 var tr = $('#couponreward_3'+g.id); tr.find('.selectit').addClass('selected').text('已选择'); tr.find('.num').val(g.num); tr.find('.couponname').val(g.couponname.substring(0,10)); }); $('textarea[name="rewardcoupon3"]').text(JSON.stringify(model.reward3.coupon)); } }; //获取url model.url = function (routes, params, merch) { if (merch) { var url = './merchant.php?c=site&a=entry&m=ewei_shopv2&do=web&r=' + routes.replace(/\//ig, '.') } else { var url = './index.php?c=site&a=entry&m=ewei_shopv2&do=web&r=' + routes.replace(/\//ig, '.') } if (params) { if (typeof(params) == 'object') { url += "&" + $.toQueryString(params) } else if (typeof(params) == 'string') { url += "&" + params } } return url }; //分页获取数据 model.getpage = function (page,type) { if (type == 'goods' || type== 1){ var $type = 1; }else{ var $type = 0; } model.pageType = type; url = model.url('task.selectlist'); $('#selectorlist').empty(); $.ajax({ url:url, type:'get', data:{page:page,type:$type}, success:function (data) { var obj = JSON.parse(data); if (obj.status >0){ delete obj.result.url; $.each(obj.result,function (i,item) { //表头 model.thSelector($type); if ($type == 1){//商品 model.goodsSelector(item); }else {//优惠券 model.couponSelector(item); } //分页 model.pageSelector(obj.status,page); }) }else{ //没有数据 } model.rewardInit(); }, error:function () { alert('请求失败,请刷新重试'); } }); }; //处理商品 model.goodsSelector = function(item){ $('#selectorlist').append(''+ ''+item.id+''+ ' '+item.title+''+ ''+item.marketprice+''+ ''+item.total+''+ ''+ ''+ ''+ '选择'+ '' ); }; //处理优惠券 model.couponSelector = function (item) { if (model.pageType == 'coupon') { var prev = 'couponreward'; }else if(model.pageType == 'followcoupon'){ var prev = 'couponfollowreward'; }else if(model.pageType == 'coupon2'){ var prev = 'couponreward_2'; }else if(model.pageType == 'coupon3'){ var prev = 'couponreward_3'; } $('#selectorlist').append(''+ ''+item.id+''+ ' '+item.couponname+''+ ''+ ''+ '选择'+ '' ); }; //处理分页 model.pageSelector = function (count,page) { if (count<10){ $('#selectpager').empty(); return false; } var psize = 10; var html = ''; $('#selectpager').empty().html(html); }; //处理表头 model.thSelector = function (type) { if (type == 1){//商品 var html = ''+ 'ID'+ '商品名称'+ '原价'+ '库存'+ '现价'+ '数量'+ '商品别名'+ '操作'+ ''; }else{ var html = ''+ 'ID'+ '优惠券名称'+ '数量'+ '优惠券别名'+ '操作'+ ''; } $('#selectorth').empty().html(html); } return model });