define(['$', 'template', 'order', 'config', 'user', 'api'], function ($, template, order, config, user, api) { function back(backHash) { $(document).trigger('spa:navigate', { hash: backHash }); } var cachePageData = {}; return { title: '壹管家上门服务', body: '', init: function (pageData, dtd) { var $view = this; var $doc = $(document); //返回 $.newTouch('.back-button', function (event) { event.preventDefault(); var pushData = pageData.pushData; back.call(this, pushData['backHash']); }, $view); $view.on('tapBackButton', function(event) { event.preventDefault(); var pushData = pageData.pushData; back.call(this, pushData['backHash']); }); $.newTouch('.picker-option', function () { event.preventDefault(); if ($(this).hasClass('unable')) return; var pushData = pageData.pushData; $doc.trigger('spa:navigate', { hash: pushData.backHash }); if (pageData.callback && $.isFunction(pageData.callback.onSelect)) { pageData.callback.onSelect($(this).data('value')); } }, $view); // 兑换 $.newTouch('.btn-coupon', function(event) { event.preventDefault(); var pushData = pageData.pushData; var val = $('#coupon-code', $view).val(); if (val.length < 8) { $doc.trigger('spa:openpanel', ['simpleAlert', { message: '请输入有效的兑换码' }]); return; } else { $(this).val(''); user.exchangeCoupon(val, function (res) { $doc.trigger('spa:openloader'); if (res.success) { api.getCouponList({ products: pushData.products, type: pushData.type, user_id: user.id }, function (res) { $doc.trigger('spa:closeloader'); $doc.trigger('spa:openpanel', ['simpleAlert', { message: res.message }]); if (res.success) { user.orderCoupons = res.data; var tpl = template('picker/cell', { options: res.data }); $view.find('.card-list').html(tpl); } }) } else { $doc.trigger('spa:closeloader'); $doc.trigger('spa:openpanel', ['simpleAlert', { message: res.message }]); } }) } }, $view); dtd.resolve(); }, beforeopen: function (pageData, dtd) { var $view = this; var pushData = pageData.pushData; if (pushData.needReload) { pushData.needReload = false; var pickerTemp = pushData.temp ? pushData.temp : 'picker/index'; var tpl = template(pickerTemp, { options: pushData['options'], unuseables: pushData['unuseables'], title: pushData['title'], showNavBar: !config.isWX && !config.isChubao }); $view.find('.spa-page-body').html(tpl); if (pageData.scroll) { pageData.scroll.destroy(); pageData.scroll = null; } setTimeout(function() { pageData.scroll = new IScroll('#pickerScroll'); }, 10); }; dtd.resolve(); } } })