messagebox.js 2.27 KB
commonModule.factory('messagebox', ['$q', '$translate', 'SweetAlert', function ($q, $translate, SweetAlert) {
    'use strict';

    var getMsg = function (resultMsg, hasTranslated) {
        hasTranslated = hasTranslated || false;
        var msg = resultMsg;
        if (!hasTranslated) {
            msg = $translate.instant(resultMsg);
        }
        return msg;
    };

    var success = function (resultMsg, hasTranslated) {
        var msg = this.getMsg(resultMsg, hasTranslated)
        SweetAlert.success(msg);
    };

    var warning = function (resultMsg, hasTranslated) {
        var msg = this.getMsg(resultMsg, hasTranslated)
        SweetAlert.warning(msg);
    };

    //有确认和取消按钮
    var confirm = function (title, text, customClass) {
        var deferred = $q.defer();
        SweetAlert.swal({
            title: title,
            text: text,
            html: true,
            type: "warning",
            customClass: customClass || '',
            showCancelButton: true,
            confirmButtonColor: "#DD6B55",
            allowOutsideClick: false,
            confirmButtonText: $translate.instant('Confirm'),
            cancelButtonText: $translate.instant('Cancel'),
            closeOnConfirm: true,
            closeOnCancel: true
        },
            function (isConfirm) {
                deferred.resolve(isConfirm);
            });

        return deferred.promise;
    };

    //没有取消按钮
    var info = function (title, text, customClass) {
        var deferred = $q.defer();

        SweetAlert.swal({
            title: title,
            text: text,
            html: true,
            type: "warning",
            customClass: customClass || '',
            showCancelButton: false,
            confirmButtonColor: "#DD6B55",
            allowOutsideClick: false,
            confirmButtonText: $translate.instant('Confirm'),
            cancelButtonText: $translate.instant('Cancel'),
            closeOnConfirm: true,
            closeOnCancel: false
        },
            function (isConfirm) {
                deferred.resolve(isConfirm);
            });

        return deferred.promise;
    };

    return {
        getMsg: getMsg,
        success: success,
        warning: warning,
        confirm: confirm,
        info: info
    }
}]);