var app = new Vue({ el: '#app', data: { // 用户信息 memberInfo: {}, // 当前文件 fileData: {}, // 剪切参数 cropParams: { id: 0, src: '', cropSrc: '', min: 400, max: 200, boundx: 0, boundy: 0, width: 0, height: 0, }, // 打印的图片参数 files: [], // 图片列表 picList: [], // 打印方式 printType: 1, // 提交状态 submitting: false, // 预览状态 cropPreviewStatus: false, // 剪切对象 jc: null, // 设备ID deviceId: 0, // 色彩 colorType: 2, pageType: 1, id: 0, }, created: function () { var printType = getParam('pt'); this.printType = printType ? printType : 1; this.id = getParam('id'); this.getFileList(); }, updated: function () { // 计时器 var _this = this; var MAX = 100, MIN = 1; $('.weui-count__decrease').unbind('click').on('click',function (e) { if (_this.deviceId) { return false; } var $input = $(e.target).parent().find('.weui-count__number'); var number = parseInt($input.val() || "0") - 1 if (number < MIN) number = MIN; $input.val(number) }) $('.weui-count__increase').unbind('click').on('click',function (e) { if (_this.deviceId) { return false; } var $input = $(e.target).parent().find('.weui-count__number'); var number = parseInt($input.val() || "0") + 1 if (number > MAX) number = MAX; $input.val(number) }); $(".weui-count__number").blur(function () { var num = $.trim($(this).val()); if (!/[1-9][0-9]{0,2}/.test(num) || num < MIN || num > MAX) { num = 1; } $(this).val(num); }) $(".page-type .btn").unbind('click').on('click', function(){ var index = $(this).index(); _this.pageType = index+1; $(".page-type").each(function(){ $(this).find('.btn').eq(index).addClass('active').siblings().removeClass('active'); }) }); $(".print-type .btn").unbind('click').on('click', function(){ var index = $(this).index(); _this.colorType = index+1; $(".print-type").each(function(){ $(this).find('.btn').eq(index).addClass('active').siblings().removeClass('active'); }) }); }, methods: { // 获取图片列表 getFileList: function(){ var _this = this; $.post('/weixin/print/getFileList', {type: 2}, function (res) { if (res.code == 'success') { _this.picList = res.data } else if (res.code == 'login') { login(res.data.url); } }, "json"); }, // 获取用户信息 getMemberInfo: function () { var _this = this; $.post('/weixin/member/getMemberInfo', {}, function (res) { if (res.code == 'success') { _this.memberInfo = res.data } else if (res.code == 'login') { login(res.data.url); } }, "json"); }, // 提交 doSubmit: function () { var _this = this; if (_this.submitting) { return false; } $(".file-box").each(function (k, item) { var name = $.trim($(this).find('.file-name').text()); var nums = parseInt($(this).find('.file-num').val()); var page_type = parseInt($(this).find('.page-type .btn.active').index() + 1); var print_type = parseInt($(this).find('.print-type .btn.active').index() + 1); var page_start = parseInt($(this).find('.page-start').val()); var page_end = parseInt($(this).find('.page-end').val()); var id = $(this).attr('data-id'); if (id) { var file = { id: id, name: name, nums: nums, page_type: page_type, print_type: print_type, page_start: page_start, page_end: page_end }; _this.files.push(file); } }); if (_this.files.length <= 0) { $.toast('请选择打印的文件'); return false; } $.modal({ title: "", text: "
请扫一扫设备上的二维码
获取设备信息
", buttons: [ { text: "扫一扫", className: "warning", onClick: function () { _this.scan(); } }, ] }); }, // 扫码设备 scan: function () { var _this = this; $.post('/weixin/index/getJssdkParams', {url: location.href}, function (res) { var params = res.data; // 微信JSSDK wx.config({ debug: false, // 是否调试模式 appId: params.appId, // 必填,公众号的唯一标识 timestamp: params.timestamp, // 必填,生成签名的时间戳 nonceStr: params.nonceStr, // 必填,生成签名的随机串 signature: params.signature,// 必填,签名 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'scanQRCode'] // 必填,需要使用的JS接口列表 }); // 初始化处理 wx.ready(function () { // 微信扫一扫 wx.scanQRCode({ needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有 success: function (res) { var deviceId = res.resultStr; _this.deviceId = deviceId; if (deviceId) { $.closeModal(); $.modal({ title: "", text: "
扫码成功
点击下方确认下单
", buttons: [ { text: "确认下单", className: "warning", onClick: function () { $.showLoading('订单处理中...'); $.post('/weixin/order/confirm', { clusterId: _this.id, deviceId: deviceId, printType: _this.printType, colorType: _this.colorType, pageType: _this.pageType, files: _this.files, type: 2 }, function (res) { $.hideLoading(); if (res.code == 'success') { var msg = _this.id > 0 && _this.printType == 2 ? '参与拼团成功' : (_this.printType == 2 ? '发起拼团成功' : '下单成功'); $.showLoading(msg + ',即将前往支付...'); setTimeout(function () { location.href = '/weixin/order/pay?id=' + res.data; }, 800); } else if (res.code == 'login') { login(res.data.url); } else { $.toast(res.message); $.closeModal(); $.modal({ title: "", text: "
请扫一扫设备上的二维码
获取设备信息
", buttons: [ { text: "扫一扫", className: "warning", onClick: function () { _this.scan(); } }, ] }); } }, "json") } }, ] }); } else { webToast('扫码信息错误', "middle", 1000) } } }); }); }, "JSON"); }, // 删除图片 picDel: function (id) { var fileId = $("#pic_" + id).attr('data-id'); $("#pic_" + id).detach(); if (fileId) { $.post("/weixin/print/fileDel", {id: fileId}) } }, // 切换预览 hidePreview: function () { $.closePopup(); }, // 预览 preview: function (file) { // this.fileData = file; // var url = 'http://'+document.domain+'/weixin/index/preview?t='+file.file_type+'&url='; // $("#preview").attr('src', url+file.preview); // location.href = url; // window.open(url); /*alert(url+file.preview); $("#previewBox").popup(); console.log(file)*/ }, // 选择图片 selectFile: function (ele) { var _this = this; var files = ele.target.files; if (files.length > 0) { var _this = this; var count = 0; var formData = new FormData(); var error = false; $.each(files, function (k, file) { var fileType = (file.name).substring((file.name).lastIndexOf(".")).toLowerCase(); if(!new RegExp("(xls|xlsx|doc|docx|pdf|ppt|pptx)+","gi").test(fileType)){ $.toast("文件类型不支持,必须是xls|xlsx|doc|docx|pdf|ppt|pptx格式文件",'text'); $(ele.target).val(""); error = true; return false; } if (file.size / 1024 / 1024 > 20) { $.toast('上传文件大小不能超过20M','text'); $(ele.target).val(""); error = true; return false; } if (file) { count++; formData.append('file', file); } }); if(error){ return false; } if (count <= 0) { $.toast('请选择打印的文件'); return false; } // 上传 $.showLoading('文件上传处理中...'); var ajax = $.ajax({ url: '/weixin/upload/file', data: formData, type: "post", dataType: 'json', cache: false, contentType: false, processData: false, timeout: 30000, // timeout: 30000, success: function (res) { $.hideLoading(); if (res.code == 'success') { $.toast('文件上传完成'); if (res.data) { _this.picList.push(res.data); } } else if (res.code == 'login') { login(res.data.url); } else { $.toast(res.message); } }, error: function(res){ $.toast('服务器错误'); }, complete: function (XMLHttpRequest, status) { if(status == 'timeout'){ ajax.abort(); $.toast('请求超时,请重新上传'); location.reload(); } } }) } }, } });