UNPKG

@kre-form/ant

Version:

188 lines 17.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Component } from "@angular/core"; import { FieldType } from "@kre-form/core"; import { NzMessageService } from "ng-zorro-antd/message"; import { Observable } from "rxjs"; var KreFormFieldUpload = /** @class */ (function (_super) { tslib_1.__extends(KreFormFieldUpload, _super); function KreFormFieldUpload(msg) { var _this = _super.call(this) || this; _this.msg = msg; _this.defaultFileList = []; _this.handleRemove = (/** * @param {?} file * @return {?} */ function (file) { return new Observable((/** * @param {?} observer * @return {?} */ function (observer) { observer.next(true); observer.complete(); })); }); _this.beforeUpload = (/** * @param {?} file * @return {?} */ function (file) { return new Observable((/** * @param {?} observer * @return {?} */ function (observer) { /** @type {?} */ var isJPG = file.type === "image/jpeg"; if (!_this.checkFileType(file)) { _this.msg.error("您上传的文件类型不符合要求!"); observer.complete(); return; } if (!_this.checkFileSize(file)) { _this.msg.error("您上传的文件大小已经超出最大设置"); observer.complete(); return; } observer.next(true); observer.complete(); })); }); return _this; } /** * @param {?} __0 * @return {?} */ KreFormFieldUpload.prototype.handleChange = /** * @param {?} __0 * @return {?} */ function (_a) { var file = _a.file, fileList = _a.fileList; /** @type {?} */ var status = file.status; if (status !== "uploading") { } if (status === "done") { /** @type {?} */ var values = fileList.map((/** * @param {?} item * @return {?} */ function (item) { return { uid: item.uid, name: item.name, url: item.url, }; })); /* this.model[this.field.key] = values; this.formControl.markAsTouched(); */ this.formControl.patchValue(values); this.formControl.markAsTouched(); this.msg.success("\u6587\u4EF6" + file.name + " \u4E0A\u4F20\u6210\u529F\uFF01"); } else if (status === "error") { this.msg.error("\u6587\u4EF6" + file.name + " \u4E0A\u4F20\u5931\u8D25\uFF01"); } if (status === "removed") { /** @type {?} */ var values = this.formControl.value; values.forEach((/** * @param {?} item * @param {?} index * @param {?} object * @return {?} */ function (item, index, object) { if (item.uid === file.uid) { object.splice(index, 1); } })); //this.formControl.patchValue(values); //this.formControl.markAsTouched(); this.msg.success("\u6587\u4EF6" + file.name + " \u5220\u9664\u6210\u529F\uFF01"); } }; /** * @param {?} file * @return {?} */ KreFormFieldUpload.prototype.checkFileType = /** * @param {?} file * @return {?} */ function (file) { /** @type {?} */ var result = true; if (this.field && this.field.templateOptions && this.field.templateOptions.attachment && this.field.templateOptions.attachment.type) { /** @type {?} */ var types = this.field.templateOptions.attachment.type; if (types != undefined && types != null && types != "") { result = types.split(",").some((/** * @param {?} item * @return {?} */ function (item) { return file.type === item; })); } } return result; }; /** * @param {?} file * @return {?} */ KreFormFieldUpload.prototype.checkFileSize = /** * @param {?} file * @return {?} */ function (file) { /** @type {?} */ var result = true; if (this.field && this.field.templateOptions && this.field.templateOptions.attachment && this.field.templateOptions.attachment.size) { /** @type {?} */ var size = this.field.templateOptions.attachment.size; if (size != undefined && size != null) { result = file.size / 1024 / 1024 <= size; } } return result; }; KreFormFieldUpload.decorators = [ { type: Component, args: [{ selector: "krefield-upload", template: "\n <ng-container *ngIf=\"formStatus !== 0; else other\">\n <div class=\"control-design\">\n <nz-upload nzType=\"drag\" [nzDisabled]=\"true\">\n <p class=\"ant-upload-drag-icon\"></p>\n <p class=\"ant-upload-text\">\u5355\u51FB\u6216\u62D6\u52A8\u6587\u4EF6\u5230\u6B64\u533A\u57DF\u4E0A\u4F20</p>\n <p class=\"ant-upload-hint\">\n \u652F\u6301\u5355\u4E2A\u6216\u6279\u91CF\u4E0A\u4F20\u3002\u4E25\u7981\u4E0A\u4F20\u4E0D\u6CD5\u6587\u4EF6\uFF0C\u8C22\u8C22!\n </p>\n </nz-upload>\n </div>\n </ng-container>\n\n <ng-template #other>\n <nz-upload\n nzType=\"drag\"\n nzAction=\"https://jsonplaceholder.typicode.com/posts/\"\n [nzFileList]=\"defaultFileList\"\n [nzMultiple]=\"true\"\n (nzChange)=\"handleChange($event)\"\n [class.is-invalid]=\"showError\"\n >\n <p class=\"ant-upload-drag-icon\"></p>\n <p class=\"ant-upload-text\">\u5355\u51FB\u6216\u62D6\u52A8\u6587\u4EF6\u5230\u6B64\u533A\u57DF\u4E0A\u4F20</p>\n <p class=\"ant-upload-hint\">\n \u652F\u6301\u5355\u4E2A\u6216\u6279\u91CF\u4E0A\u4F20\u3002\u4E25\u7981\u4E0A\u4F20\u4E0D\u6CD5\u6587\u4EF6\uFF0C\u8C22\u8C22!\n </p>\n </nz-upload>\n <div class=\"tips\"></div>\n </ng-template>\n " }] } ]; /** @nocollapse */ KreFormFieldUpload.ctorParameters = function () { return [ { type: NzMessageService } ]; }; return KreFormFieldUpload; }(FieldType)); export { KreFormFieldUpload }; if (false) { /** @type {?} */ KreFormFieldUpload.prototype.defaultFileList; /** @type {?} */ KreFormFieldUpload.prototype.handleRemove; /** @type {?} */ KreFormFieldUpload.prototype.beforeUpload; /** @type {?} */ KreFormFieldUpload.prototype.msg; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGtyZS1mb3JtL2FudC8iLCJzb3VyY2VzIjpbImxpYi90eXBlcy91cGxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBSTVDO0lBa0N3Qyw4Q0FBUztJQUUvQyw0QkFBbUIsR0FBcUI7UUFBeEMsWUFDRSxpQkFBTyxTQUNSO1FBRmtCLFNBQUcsR0FBSCxHQUFHLENBQWtCO1FBRHhDLHFCQUFlLEdBQUcsRUFBRSxDQUFDO1FBdUNyQixrQkFBWTs7OztRQUFHLFVBQUMsSUFBUztZQUN2QixPQUFBLElBQUksVUFBVTs7OztZQUFVLFVBQUMsUUFBUTtnQkFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLENBQUMsRUFBQztRQUhGLENBR0UsRUFBQztRQUVMLGtCQUFZOzs7O1FBQUcsVUFBQyxJQUFVO1lBQ3hCLE9BQU8sSUFBSSxVQUFVOzs7O1lBQUMsVUFBQyxRQUEyQjs7b0JBQzFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVk7Z0JBQ3hDLElBQUksQ0FBQyxLQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUM3QixLQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUNqQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3BCLE9BQU87aUJBQ1I7Z0JBQ0QsSUFBSSxDQUFDLEtBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFD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bEIsTUFBTSxHQUFZLElBQUk7UUFDMUIsSUFDRSxJQUFJLENBQUMsS0FBSztZQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTtZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxVQUFVO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQzFDOztnQkFDSSxJQUFJLEdBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUk7WUFDMUQsSUFBSSxJQUFJLElBQUksU0FBUyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7Z0JBQ3JDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDO2FBQzFDO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztnQkFsSUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRSxtekNBOEJUO2lCQUNGOzs7O2dCQXZDUSxnQkFBZ0I7O0lBeUl6Qix5QkFBQztDQUFBLEFBbklELENBa0N3QyxTQUFTLEdBaUdoRDtTQWpHWSxrQkFBa0I7OztJQUM3Qiw2Q0FBcUI7O0lBdUNyQiwwQ0FJSzs7SUFFTCwwQ0FnQkU7O0lBNURVLGlDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tIFwiQGtyZS1mb3JtL2NvcmVcIjtcbmltcG9ydCB7IE56TWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwibmctem9ycm8tYW50ZC9tZXNzYWdlXCI7XG5pbXBvcnQgeyBVcGxvYWRDaGFuZ2VQYXJhbSwgVXBsb2FkRmlsZSB9IGZyb20gXCJuZy16b3Jyby1hbnRkL3VwbG9hZFwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgS3JlRm9ybUFudFNlcnZpY2UgfSBmcm9tIFwiLi4vdG9vbHMvc2VydmljZVwiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJrcmVmaWVsZC11cGxvYWRcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybVN0YXR1cyAhPT0gMDsgZWxzZSBvdGhlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2wtZGVzaWduXCI+XG4gICAgICAgIDxuei11cGxvYWQgbnpUeXBlPVwiZHJhZ1wiIFtuekRpc2FibGVkXT1cInRydWVcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cImFudC11cGxvYWQtZHJhZy1pY29uXCI+PC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwiYW50LXVwbG9hZC10ZXh0XCI+5Y2V5Ye75oiW5ouW5Yqo5paH5Lu25Yiw5q2k5Yy65Z+f5LiK5LygPC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwiYW50LXVwbG9hZC1oaW50XCI+XG4gICAgICAgICAgICDmlK/mjIHljZXkuKrmiJbmibnph4/kuIrkvKDjgILkuKXnpoHkuIrkvKDkuI3ms5Xmlofku7bvvIzosKLosKIhXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L256LXVwbG9hZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNvdGhlcj5cbiAgICAgIDxuei11cGxvYWRcbiAgICAgICAgbnpUeXBlPVwiZHJhZ1wiXG4gICAgICAgIG56QWN0aW9uPVwiaHR0cHM6Ly9qc29ucGxhY2Vob2xkZXIudHlwaWNvZGUuY29tL3Bvc3RzL1wiXG4gICAgICAgIFtuekZpbGVMaXN0XT1cImRlZmF1bHRGaWxlTGlzdFwiXG4gICAgICAgIFtuek11bHRpcGxlXT1cInRydWVcIlxuICAgICAgICAobnpDaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJzaG93RXJyb3JcIlxuICAgICAgPlxuICAgICAgICA8cCBjbGFzcz1cImFudC11cGxvYWQtZHJhZy1pY29uXCI+PC9wPlxuICAgICAgICA8cCBjbGFzcz1cImFudC11cGxvYWQtdGV4dFwiPuWNleWHu+aIluaLluWKqOaWh+S7tuWIsOatpOWMuuWfn+S4iuS8oDwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJhbnQtdXBsb2FkLWhpbnRcIj5cbiAgICAgICAgICDmlK/mjIHljZXkuKrmiJbmibnph4/kuIrkvKDjgILkuKXnpoHkuIrkvKDkuI3ms5Xmlofku7bvvIzosKLosKIhXG4gICAgICAgIDwvcD5cbiAgICAgIDwvbnotdXBsb2FkPlxuICAgICAgPGRpdiBjbGFzcz1cInRpcHNcIj48L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBLcmVGb3JtRmllbGRVcGxvYWQgZXh0ZW5kcyBGaWVsZFR5cGUge1xuICBkZWZhdWx0RmlsZUxpc3QgPSBbXTtcbiAgY29uc3RydWN0b3IocHVibGljIG1zZzogTnpNZXNzYWdlU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBoYW5kbGVDaGFuZ2UoeyBmaWxlLCBmaWxlTGlzdCB9OiBVcGxvYWRDaGFuZ2VQYXJhbSk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXR1cyA9IGZpbGUuc3RhdHVzO1xuICAgIGlmIChzdGF0dXMgIT09IFwidXBsb2FkaW5nXCIpIHtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gXCJkb25lXCIpIHtcbiAgICAgIGxldCB2YWx1ZXM6IGFueSA9IGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdWlkOiBpdGVtLnVpZCxcbiAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXG4gICAgICAgICAgdXJsOiBpdGVtLnVybCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgLyogdGhpcy5tb2RlbFt0aGlzLmZpZWxkLmtleV0gPSB2YWx1ZXM7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTsgKi9cbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZXMpO1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLm1zZy5zdWNjZXNzKGDmlofku7Yke2ZpbGUubmFtZX0g5LiK5Lyg5oiQ5Yqf77yBYCk7XG4gICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IFwiZXJyb3JcIikge1xuICAgICAgdGhpcy5tc2cuZXJyb3IoYOaWh+S7tiR7ZmlsZS5uYW1lfSDkuIrkvKDlpLHotKXvvIFgKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gXCJyZW1vdmVkXCIpIHtcbiAgICAgIGxldCB2YWx1ZXM6IGFueSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICB2YWx1ZXMuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogYW55LCBvYmplY3Q6IGFueSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS51aWQgPT09IGZpbGUudWlkKSB7XG4gICAgICAgICAgb2JqZWN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvL3RoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZXMpO1xuICAgICAgLy90aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMubXNnLnN1Y2Nlc3MoYOaWh+S7tiR7ZmlsZS5uYW1lfSDliKDpmaTmiJDlip/vvIFgKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVSZW1vdmUgPSAoZmlsZTogYW55KSA9PlxuICAgIG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KChvYnNlcnZlcikgPT4ge1xuICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfSk7XG5cbiAgYmVmb3JlVXBsb2FkID0gKGZpbGU6IEZpbGUpID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxib29sZWFuPikgPT4ge1xuICAgICAgY29uc3QgaXNKUEcgPSBmaWxlLnR5cGUgPT09IFwiaW1hZ2UvanBlZ1wiO1xuICAgICAgaWYgKCF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcbiAgICAgICAgdGhpcy5tc2cuZXJyb3IoXCLmgqjkuIrkvKDnmoTmlofku7bnsbvlnovkuI3nrKblkIjopoHmsYLvvIFcIik7XG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5jaGVja0ZpbGVTaXplKGZpbGUpKSB7XG4gICAgICAgIHRoaXMubXNnLmVycm9yKFwi5oKo5LiK5Lyg55qE5paH5Lu25aSn5bCP5bey57uP6LaF5Ye65pyA5aSn6K6+572uXCIpO1xuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBvYnNlcnZlci5uZXh0KHRydWUpO1xuICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICB9KTtcbiAgfTtcblxuICBjaGVja0ZpbGVUeXBlKGZpbGU6IEZpbGUpIHtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gdHJ1ZTtcbiAgICBpZiAoXG4gICAgICB0aGlzLmZpZWxkICYmXG4gICAgICB0aGlzLmZpZWxkLnRlbXBsYXRlT3B0aW9ucyAmJlxuICAgICAgdGhpcy5maWVsZC50ZW1wbGF0ZU9wdGlvbnMuYXR0YWNobWVudCAmJlxuICAgICAgdGhpcy5maWVsZC50ZW1wbGF0ZU9wdGlvbnMuYXR0YWNobWVudC50eXBlXG4gICAgKSB7XG4gICAgICBsZXQgdHlwZXM6IGFueSA9IHRoaXMuZmllbGQudGVtcGxhdGVPcHRpb25zLmF0dGFjaG1lbnQudHlwZTtcbiAgICAgIGlmICh0eXBlcyAhPSB1bmRlZmluZWQgJiYgdHlwZXMgIT0gbnVsbCAmJiB0eXBlcyAhPSBcIlwiKSB7XG4gICAgICAgIHJlc3VsdCA9IHR5cGVzLnNwbGl0KFwiLFwiKS5zb21lKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gZmlsZS50eXBlID09PSBpdGVtO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGNoZWNrRmlsZVNpemUoZmlsZTogRmlsZSkge1xuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSB0cnVlO1xuICAgIGlmIChcbiAgICAgIHRoaXMuZmllbGQgJiZcbiAgICAgIHRoaXMuZmllbGQudGVtcGxhdGVPcHRpb25zICYmXG4gICAgICB0aGlzLmZpZWxkLnRlbXBsYXRlT3B0aW9ucy5hdHRhY2htZW50ICYmXG4gICAgICB0aGlzLmZpZWxkLnRlbXBsYXRlT3B0aW9ucy5hdHRhY2htZW50LnNpemVcbiAgICApIHtcbiAgICAgIGxldCBzaXplOiBhbnkgPSB0aGlzLmZpZWxkLnRlbXBsYXRlT3B0aW9ucy5hdHRhY2htZW50LnNpemU7XG4gICAgICBpZiAoc2l6ZSAhPSB1bmRlZmluZWQgJiYgc2l6ZSAhPSBudWxsKSB7XG4gICAgICAgIHJlc3VsdCA9IGZpbGUuc2l6ZSAvIDEwMjQgLyAxMDI0IDw9IHNpemU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==