UNPKG

dbweb-common

Version:

用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上

318 lines 18.3 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Injectable } from '@angular/core'; import { ApiService, ElementApiService, ElementsService } from 'dbweb-core'; import { from } from 'rxjs'; import { map, tap } from 'rxjs/operators'; import { ElementViewDigest } from '../model/element-columns-digest'; /** * @record */ function CacheFetchParam() { } if (false) { /** @type {?} */ CacheFetchParam.prototype.timeOutTime; /** @type {?} */ CacheFetchParam.prototype.data; } /** * @record */ function UpdateViewParam() { } if (false) { /** @type {?} */ UpdateViewParam.prototype.Name; /** @type {?} */ UpdateViewParam.prototype.OwnerBy; /** @type {?} */ UpdateViewParam.prototype.Owner; /** @type {?} */ UpdateViewParam.prototype.Columns; } /** * @record */ function UpdateViewNameParam() { } if (false) { /** @type {?} */ UpdateViewNameParam.prototype.OldName; /** @type {?} */ UpdateViewNameParam.prototype.Name; /** @type {?} */ UpdateViewNameParam.prototype.OwnerBy; /** @type {?} */ UpdateViewNameParam.prototype.Owner; } /** * @record */ function BuildRecordViewURLParam() { } if (false) { /** @type {?} */ BuildRecordViewURLParam.prototype.Title; /** @type {?} */ BuildRecordViewURLParam.prototype.Condition; /** @type {?|undefined} */ BuildRecordViewURLParam.prototype.More; } var BackFaceService = /** @class */ (function () { function BackFaceService(eleApi, api, eles) { this.eleApi = eleApi; this.api = api; this.eles = eles; this.paramCache = new Map(); } /** * @param {?} param * @return {?} */ BackFaceService.prototype.buildRecordViewURL = /** * @param {?} param * @return {?} */ function (param) { return this.eleApi.get(this.eleName, 'build-record-view-url', param); }; /** * @private * @template T * @param {?} method * @param {?=} param * @return {?} */ BackFaceService.prototype.apiGet = /** * @private * @template T * @param {?} method * @param {?=} param * @return {?} */ function (method, param) { return this.api.get(this.url, method, this.eles.getURLSign(this.url), param); }; /** * @private * @template T * @param {?} method * @param {?=} param * @return {?} */ BackFaceService.prototype.apiPost = /** * @private * @template T * @param {?} method * @param {?=} param * @return {?} */ function (method, param) { return this.api.post(this.url, method, this.eles.getURLSign(this.url), param); }; /** * @param {?} param * @return {?} */ BackFaceService.prototype.fetchRowCount = /** * @param {?} param * @return {?} */ function (param) { return this.apiPost('fetch-row-count', param); }; /** * @param {?} param * @return {?} */ BackFaceService.prototype.fetchData = /** * @param {?} param * @return {?} */ function (param) { /** @type {?} */ var startTime = new Date().getTime(); return this.apiPost('fetch-data', param).pipe(map((/** * @param {?} v * @return {?} */ function (v) { return (tslib_1.__assign({}, v, { TimeConsuming: (new Date().getTime() - startTime) / 1000 })); }))); }; /** * @return {?} */ BackFaceService.prototype.fetParamCache = /** * @return {?} */ function () { var _this = this; if (this.paramCache.has(this.eleName)) { /** @type {?} */ var data = this.paramCache.get(this.eleName); // 如果没有超时则返回 if (data.timeOutTime > new Date()) { return from([data.data]); } } // console.log('fetch', eleName, 'param'); return this.apiGet('fetch-param').pipe(tap((/** * @param {?} val * @return {?} */ function (val) { /** @type {?} */ var date = new Date(); date.setTime(date.getTime() + 5 * 1000 * 60); // 5分钟超时 _this.paramCache.set(_this.eleName, { timeOutTime: date, data: val }); }))); }; /** * @return {?} */ BackFaceService.prototype.fetchAllColumns = /** * @return {?} */ function () { return this.apiGet('fetch-all-columns'); }; // 获取视图清单 // 获取视图清单 /** * @return {?} */ BackFaceService.prototype.fetchElementViewList = // 获取视图清单 /** * @return {?} */ function () { return this.apiGet('fetch-element-view-list', this.eleName).pipe(map((/** * @param {?} v * @return {?} */ function (v) { return v.map((/** * @param {?} vv * @return {?} */ function (vv) { return ElementViewDigest.fromInterface(vv); })); }))); }; /** * @param {?} param * @return {?} */ BackFaceService.prototype.getViewColumns = /** * @param {?} param * @return {?} */ function (param) { return this.apiGet('get-view-columns', param); }; // 新增视图,只有名称,没有内容 // 新增视图,只有名称,没有内容 /** * @param {?} param * @return {?} */ BackFaceService.prototype.addView = // 新增视图,只有名称,没有内容 /** * @param {?} param * @return {?} */ function (param) { return this.apiPost('add-view', param); }; // 更新视图 // 更新视图 /** * @param {?} param * @return {?} */ BackFaceService.prototype.updateView = // 更新视图 /** * @param {?} param * @return {?} */ function (param) { return this.apiPost('update-view', param); }; // 更新视图名称 // 更新视图名称 /** * @param {?} param * @return {?} */ BackFaceService.prototype.updateViewName = // 更新视图名称 /** * @param {?} param * @return {?} */ function (param) { return this.apiPost('update-view-name', param); }; // 删除视图 // 删除视图 /** * @param {?} param * @return {?} */ BackFaceService.prototype.removeView = // 删除视图 /** * @param {?} param * @return {?} */ function (param) { return this.apiPost('remove-view', param); }; // 返回多个标签的涉及列 // 返回多个标签的涉及列 /** * @return {?} */ BackFaceService.prototype.comboLabelsView = // 返回多个标签的涉及列 /** * @return {?} */ function () { return this.apiGet('combo-labels-view'); }; BackFaceService.decorators = [ { type: Injectable } ]; /** @nocollapse */ BackFaceService.ctorParameters = function () { return [ { type: ElementApiService }, { type: ApiService }, { type: ElementsService } ]; }; return BackFaceService; }()); export { BackFaceService }; if (false) { /** @type {?} */ BackFaceService.prototype.eleName; /** @type {?} */ BackFaceService.prototype.url; /** @type {?} */ BackFaceService.prototype.paramCache; /** * @type {?} * @private */ BackFaceService.prototype.eleApi; /** * @type {?} * @private */ BackFaceService.prototype.api; /** * @type {?} * @private */ BackFaceService.prototype.eles; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2ZhY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kYndlYi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvcmVjb3JkLXZpZXcvc2VydmljZS9iYWNrZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBVXBFLDhCQUdDOzs7SUFGQSxzQ0FBa0I7O0lBQ2xCLCtCQUF3Qjs7Ozs7QUFHekIsOEJBS0M7OztJQUpBLCtCQUFhOztJQUNiLGtDQUFnQjs7SUFDaEIsZ0NBQWM7O0lBQ2Qsa0NBQTBCOzs7OztBQUUzQixrQ0FLQzs7O0lBSkEsc0NBQWdCOztJQUNoQixtQ0FBYTs7SUFDYixzQ0FBZ0I7O0lBQ2hCLG9DQUFjOzs7OztBQUVmLHNDQUlDOzs7SUFIQSx3Q0FBYzs7SUFDZCw0Q0FBa0I7O0lBQ2xCLHVDQUFnQjs7QUFHakI7SUFLQyx5QkFBb0IsTUFBeUIsRUFBVSxHQUFlLEVBQVUsSUFBcUI7UUFBakYsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFEckcsZUFBVSxHQUFHLElBQUksR0FBRyxFQUEyQixDQUFDO0lBQ3dELENBQUM7Ozs7O0lBQ3pHLDRDQUFrQjs7OztJQUFsQixVQUFtQixLQUE4QjtRQUNoRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsdUJBQXVC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Qjs7Ozs7SUFBRSwrQkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UsIEVsZW1lbnRBcGlTZXJ2aWNlLCBFbGVtZW50c1NlcnZpY2UgfSBmcm9tICdkYndlYi1jb3JlJztcclxuaW1wb3J0IHsgZnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSUNvbHVtblR5cGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbGV2aWV3L3R5cGVzL21vZGVsJztcclxuaW1wb3J0IHsgRWxlbWVudFZpZXdEaWdlc3QgfSBmcm9tICcuLi9tb2RlbC9lbGVtZW50LWNvbHVtbnMtZGlnZXN0JztcclxuaW1wb3J0IHtcclxuXHRJRGlzcGxheUNvbHVtbixcclxuXHRJRWxlbWVudFZpZXdEaWdlc3QsXHJcblx0SUZldGNoRGF0YVBhcmFtLFxyXG5cdElGZXRjaERhdGFSZXN1bHRUeXBlLFxyXG5cdElGZXRjaFBhcmFtUmVzdWx0LFxyXG5cdElGZXRjaFJvd0NvdW50UmVzdWx0XHJcbn0gZnJvbSAnLi4vbW9kZWwvbW9kZWwnO1xyXG5cclxuaW50ZXJmYWNlIENhY2hlRmV0Y2hQYXJhbSB7XHJcblx0dGltZU91dFRpbWU6IERhdGU7XHJcblx0ZGF0YTogSUZldGNoUGFyYW1SZXN1bHQ7XHJcbn1cclxuXHJcbmludGVyZmFjZSBVcGRhdGVWaWV3UGFyYW0ge1xyXG5cdE5hbWU6IHN0cmluZztcclxuXHRPd25lckJ5OiBzdHJpbmc7XHJcblx0T3duZXI6IHN0cmluZztcclxuXHRDb2x1bW5zOiBJRGlzcGxheUNvbHVtbltdO1xyXG59XHJcbmludGVyZmFjZSBVcGRhdGVWaWV3TmFtZVBhcmFtIHtcclxuXHRPbGROYW1lOiBzdHJpbmc7XHJcblx0TmFtZTogc3RyaW5nO1xyXG5cdE93bmVyQnk6IHN0cmluZztcclxuXHRPd25lcjogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBCdWlsZFJlY29yZFZpZXdVUkxQYXJhbSB7XHJcblx0VGl0bGU6IHN0cmluZztcclxuXHRDb25kaXRpb246IHN0cmluZztcclxuXHRNb3JlPzogc3RyaW5nW107XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEJhY2tGYWNlU2VydmljZSB7XHJcblx0cHVibGljIGVsZU5hbWU6IHN0cmluZztcclxuXHRwdWJsaWMgdXJsOiBzdHJpbmc7XHJcblx0cGFyYW1DYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBDYWNoZUZldGNoUGFyYW0+KCk7XHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBlbGVBcGk6IEVsZW1lbnRBcGlTZXJ2aWNlLCBwcml2YXRlIGFwaTogQXBpU2VydmljZSwgcHJpdmF0ZSBlbGVzOiBFbGVtZW50c1NlcnZpY2UpIHt9XHJcblx0YnVpbGRSZWNvcmRWaWV3VVJMKHBhcmFtOiBCdWlsZFJlY29yZFZpZXdVUkxQYXJhbSkge1xyXG5cdFx0cmV0dXJuIHRoaXMuZWxlQXBpLmdldDxzdHJpbmc+KHRoaXMuZWxlTmFtZSwgJ2J1aWxkLXJlY29yZC12aWV3LXVybCcsIHBhcmFtKTtcclxuXHR9XHJcblx0cHJpdmF0ZSBhcGlHZXQ8VD4obWV0aG9kOiBzdHJpbmcsIHBhcmFtPzogYW55KSB7XHJcblx0XHRyZXR1cm4gdGhpcy5hcGkuZ2V0PFQ+KHRoaXMudXJsLCBtZXRob2QsIHRoaXMuZWxlcy5nZXRVUkxTaWduKHRoaXMudXJsKSwgcGFyYW0pO1xyXG5cdH1cclxuXHRwcml2YXRlIGFwaVBvc3Q8VD4obWV0aG9kOiBzdHJpbmcsIHBhcmFtPzogYW55KSB7XHJcblx0XHRyZXR1cm4gdGhpcy5hcGkucG9zdDxUPih0aGlzLnVybCwgbWV0aG9kLCB0aGlzLmVsZXMuZ2V0VVJMU2lnbih0aGlzLnVybCksIHBhcmFtKTtcclxuXHR9XHJcblx0ZmV0Y2hSb3dDb3VudChwYXJhbTogSUZldGNoRGF0YVBhcmFtKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5hcGlQb3N0PElGZXRjaFJvd0NvdW50UmVzdWx0PignZmV0Y2gtcm93LWNvdW50JywgcGFyYW0pO1xyXG5cdH1cclxuXHRmZXRjaERhdGEocGFyYW06IElGZXRjaERhdGFQYXJhbSkge1xyXG5cdFx0Y29uc3Qgc3RhcnRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcblx0XHRyZXR1cm4gdGhpcy5hcGlQb3N0PElGZXRjaERhdGFSZXN1bHRUeXBlPignZmV0Y2gtZGF0YScsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAodiA9PiAoeyAuLi52LCBUaW1lQ29uc3VtaW5nOiAobmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGFydFRpbWUpIC8gMTAwMCB9KSlcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRmZXRQYXJhbUNhY2hlKCkge1xyXG5cdFx0aWYgKHRoaXMucGFyYW1DYWNoZS5oYXModGhpcy5lbGVOYW1lKSkge1xyXG5cdFx0XHRjb25zdCBkYXRhID0gdGhpcy5wYXJhbUNhY2hlLmdldCh0aGlzLmVsZU5hbWUpO1xyXG5cdFx0XHQvLyDlpoLmnpzmsqHmnInotoXml7bliJnov5Tlm55cclxuXHRcdFx0aWYgKGRhdGEudGltZU91dFRpbWUgPiBuZXcgRGF0ZSgpKSB7XHJcblx0XHRcdFx0cmV0dXJuIGZyb20oW2RhdGEuZGF0YV0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQvLyBjb25zb2xlLmxvZygnZmV0Y2gnLCBlbGVOYW1lLCAncGFyYW0nKTtcclxuXHRcdHJldHVybiB0aGlzLmFwaUdldDxJRmV0Y2hQYXJhbVJlc3VsdD4oJ2ZldGNoLXBhcmFtJykucGlwZShcclxuXHRcdFx0dGFwKHZhbCA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcblx0XHRcdFx0ZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgNSAqIDEwMDAgKiA2MCk7IC8vIDXliIbpkp/otoXml7ZcclxuXHJcblx0XHRcdFx0dGhpcy5wYXJhbUNhY2hlLnNldCh0aGlzLmVsZU5hbWUsIHsgdGltZU91dFRpbWU6IGRhdGUsIGRhdGE6IHZhbCB9KTtcclxuXHRcdFx0fSlcclxuXHRcdCk7XHJcblx0fVxyXG5cdGZldGNoQWxsQ29sdW1ucygpIHtcclxuXHRcdHJldHVybiB0aGlzLmFwaUdldDxJQ29sdW1uVHlwZVtdPignZmV0Y2gtYWxsLWNvbHVtbnMnKTtcclxuXHR9XHJcblxyXG5cdC8vIOiOt+WPluinhuWbvua4heWNlVxyXG5cdGZldGNoRWxlbWVudFZpZXdMaXN0KCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuYXBpR2V0PElFbGVtZW50Vmlld0RpZ2VzdFtdPignZmV0Y2gtZWxlbWVudC12aWV3LWxpc3QnLCB0aGlzLmVsZU5hbWUpLnBpcGUoXHJcblx0XHRcdG1hcCh2ID0+IHYubWFwKHZ2ID0+IEVsZW1lbnRWaWV3RGlnZXN0LmZyb21JbnRlcmZhY2UodnYpKSlcclxuXHRcdCk7XHJcblx0fVxyXG5cdGdldFZpZXdDb2x1bW5zKHBhcmFtOiBJRWxlbWVudFZpZXdEaWdlc3QpIHtcclxuXHRcdHJldHVybiB0aGlzLmFwaUdldDxJRGlzcGxheUNvbHVtbltdPignZ2V0LXZpZXctY29sdW1ucycsIHBhcmFtKTtcclxuXHR9XHJcblx0Ly8g5paw5aKe6KeG5Zu+77yM5Y+q5pyJ5ZCN56ew77yM5rKh5pyJ5YaF5a65XHJcblx0YWRkVmlldyhwYXJhbTogSUVsZW1lbnRWaWV3RGlnZXN0KSB7XHJcblx0XHRyZXR1cm4gdGhpcy5hcGlQb3N0PGJvb2xlYW4+KCdhZGQtdmlldycsIHBhcmFtKTtcclxuXHR9XHJcblx0Ly8g5pu05paw6KeG5Zu+XHJcblx0dXBkYXRlVmlldyhwYXJhbTogVXBkYXRlVmlld1BhcmFtKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5hcGlQb3N0PGJvb2xlYW4+KCd1cGRhdGUtdmlldycsIHBhcmFtKTtcclxuXHR9XHJcblx0Ly8g5pu05paw6KeG5Zu+5ZCN56ewXHJcblx0dXBkYXRlVmlld05hbWUocGFyYW06IFVwZGF0ZVZpZXdOYW1lUGFyYW0pIHtcclxuXHRcdHJldHVybiB0aGlzLmFwaVBvc3Q8Ym9vbGVhbj4oJ3VwZGF0ZS12aWV3LW5hbWUnLCBwYXJhbSk7XHJcblx0fVxyXG5cdC8vIOWIoOmZpOinhuWbvlxyXG5cdHJlbW92ZVZpZXcocGFyYW06IElFbGVtZW50Vmlld0RpZ2VzdCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuYXBpUG9zdDxib29sZWFuPigncmVtb3ZlLXZpZXcnLCBwYXJhbSk7XHJcblx0fVxyXG5cdC8vIOi/lOWbnuWkmuS4quagh+etvueahOa2ieWPiuWIl1xyXG5cdGNvbWJvTGFiZWxzVmlldygpIHtcclxuXHRcdHJldHVybiB0aGlzLmFwaUdldDxzdHJpbmdbXT4oJ2NvbWJvLWxhYmVscy12aWV3Jyk7XHJcblx0fVxyXG59XHJcbiJdfQ==