submit-controller.js 5.9 KB
/**
 * 录入维修单
 */
define(
    "order/submit-controller",
    [
        'mk7/controller',
        'mk7/url',
        'mk7/utils',
        'mk7/uploadjs',
    ],

    function(ctrl, url, utils, uploadjs) {

        var $$ = Dom7;
        var t7 = Template7;
        var ctrl = new ctrl();

        var uploadURL = '/user/default/upload-file';
        var submitURL = '/order/default/submit';
        var canSubmit = true;
        ctrl.run = function () {
            var me = this;
            me.setPageTitle("录入维修单");
            me.imgLimit = 9;
            me.render();
        }
        ctrl.bindEvents = function () {
            var me = this;
            console.log("bindEvents");
            me.uploadImgEvent();
            me.submitEvent();
        }
        ctrl.uploadImgEvent = function() {
            var me = this;

            $$('#submit #upload-btn').change(function () {
                if ('' == $$(this).val() || null == $$(this).val()) {
                    return;
                }
                var uploadParent = $$(this).parents('li');

                uploadjs.uploadFile({
                    selector: '#upload-btn',
                    url: url.to(uploadURL),
                    processAppendTo: '#submit',
                    success: function (response, e) {
                        try {
                            if (response.success) {
                                var imgUrl = response.tmpUrl;

                                $$('<li class="upload-li up-img"><div data="' + response.tmpFile + '" data-url="' + imgUrl + '" class="upload-item" style="background-image:url(' + response.tmpMinUrl + ')">'  + '</div><span class="del-img"></span></li>').insertBefore(uploadParent);
                                if (me.imgLimit == $$('#submit #image-list').find('.up-img').length) {
                                    $$('#submit .upload-btn-li').hide();
                                }
                            } else {
                                utils.toast({content: response.message, closeDelay: 5000});
                            }
                        } catch (ex) {
                            console.log(ex)
                            utils.toast({content: '出错', closeDelay: 5000});
                        }
                    }
                });
            })

            $$('#submit #image-list').on('click', '.del-img', function(e){
                $$(this).parent().remove();
                if (me.imgLimit >= $$('#submit #image-list').find('.up-img').length) {
                    $$('#submit .upload-btn-li').show();
                }
            })
        }
        ctrl.submitEvent = function() {
            var me = this;
            $$('#submit .submit-btn-cls').click(function(e) {

                var carNo = utils.trim($$('#submit .carNo').val());
                var carModel = utils.trim($$('#submit .carModel').val());
                var customer = utils.trim($$('#submit .customer').val());
                var phone = utils.trim($$('#submit .phone').val());
                var preRepair = utils.trim($$('#submit .preRepair').val());
                var repairPrice = utils.trim($$('#submit .repairPrice').val());
                var finishDate = utils.trim($$('#submit .finishDate').val());
                if (false == canSubmit) {
                    return false;
                }
                if ('' == carNo) {
                    utils.toast({content:'车牌号必填'});
                    return false;
                }
                if ('' == carModel) {
                    utils.toast({content:'车辆型号必填'});
                    return false;
                }
                if ('' == customer) {
                    utils.toast({content:'客户名称必填'});
                    return false;
                }
                if ('' == phone) {
                    utils.toast({content:'客联系电话必填'});
                    return false;
                }
                if (!utils.isMobile(phone) && !uitls.isTelephone(phone)) {
                    utils.toast({content:'客联系电话有误'});
                    return false;
                }
                if ('' == preRepair) {
                    utils.toast({content:'预估维修内容必填'});
                    return false;
                }
                if ('' == repairPrice) {
                    utils.toast({content:'预估维修费用必填'});
                    return false;
                }
                if ('' == finishDate) {
                    utils.toast({content:'预估完成时间必填'});
                    return false;
                }
                var imgs = me.getUploadImgs();
                if (0 == imgs.length) {
                    utils.toast({content:'请上传车损照'});
                    return false;
                }
                canSubmit = false;
                var sData = me.csrf({
                    carNo:carNo, carModel:carModel,customer:customer,phone:phone,
                    preRepair:preRepair, repairPrice:repairPrice,finishDate:finishDate, images:imgs
                })
                utils.httpPost(submitURL, sData, function(res) {
                    canSubmit = true;
                    if (!res.success) {
                        utils.toast({content:message});
                        return false;
                    } else {
                        window.location.href = url.to('/');
                    }
                }, true);

            })
        }
        ctrl.getUploadImgs = function() {
            var images = $$('#submit #image-list').find('.up-img');
            var returnImg = [];
            if (images.length == 0 ) {
                return [];
            }
            $$.each(images, function(i, n){
                var img = $$(n).find('.upload-item');
                returnImg.push(img.attr('data'))
            })

            return returnImg;
        }
        return ctrl;
    }
);