UNPKG

ng-yunzai-mobile

Version:

1. 修改wechat.micro.ts

181 lines 17.5 kB
/** * @fileoverview added by tsickle * Generated from: layout/yz-default-index/yz-default-index.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component } from '@angular/core'; import { ActivatedRoute, Router } from "@angular/router"; import { UserService } from "../../user/user.service"; import { InfoService } from "../../info/info.service"; var YzDefaultIndexComponent = /** @class */ (function () { function YzDefaultIndexComponent(userService, activatedRoute, infoService, router) { this.userService = userService; this.activatedRoute = activatedRoute; this.infoService = infoService; this.router = router; this.logoUrl = ''; this.title = ''; this.menus = []; this.color = ''; this.colorDodge = ''; } /** * @return {?} */ YzDefaultIndexComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; /** @type {?} */ var menus = this.userService.get().menu || []; this.activatedRoute.data.subscribe((/** * @param {?} res * @return {?} */ function (res) { /** @type {?} */ var systemCode = res.systemCode; /** @type {?} */ var mobileApp = _this.userService.findMenuBySystemCode(menus, 'mobileApp'); /** @type {?} */ var app = _this.userService.findMenuBySystemCode(mobileApp.children, systemCode); if (app) { _this.title = app.text; /** @type {?} */ var groups = app.children || []; _this.menus = groups.flatMap((/** * @param {?} group * @return {?} */ function (group) { return group.children || []; })); } // 用传过来的标题覆盖 if (res.title) { _this.title = res.title; } })); this.infoService.getSystemInfo().subscribe((/** * @param {?} res * @return {?} */ function (res) { _this.logoUrl = res.maxLogoUrl; if (res.clientEnd && res.clientEnd.color) { _this.color = res.clientEnd.color; _this.colorDodge = _this.colorRgba(_this.color, 0.71); } })); }; /** * @param {?} item * @return {?} */ YzDefaultIndexComponent.prototype.routerJump = /** * @param {?} item * @return {?} */ function (item) { if (item.link) { this.router.navigateByUrl(item.link); } else if (item.appUrl) { window.location.href = item.appUrl; } }; /** * 十六进制颜色值减淡 * @param value 颜色值 * @param transparency 透明度<=1 */ /** * 十六进制颜色值减淡 * @param {?} value 颜色值 * @param {?} transparency 透明度<=1 * @return {?} */ YzDefaultIndexComponent.prototype.colorRgba = /** * 十六进制颜色值减淡 * @param {?} value 颜色值 * @param {?} transparency 透明度<=1 * @return {?} */ function (value, transparency) { // 16进制颜色值的正则 /** @type {?} */ var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; // 把颜色值变成小写 /** @type {?} */ var color = value.toLowerCase(); if (reg.test(color)) { // 如果只有三位的值,需变成六位,如:#fff => #ffffff if (color.length === 4) { /** @type {?} */ var colorNew = "#"; for (var i = 1; i < 4; i += 1) { colorNew += color.slice(i, i + 1).concat(color.slice(i, i + 1)); } color = colorNew; } // 处理六位的颜色值,转为RGB /** @type {?} */ var colorChange = []; for (var i = 1; i < 7; i += 2) { colorChange.push(parseInt("0x" + color.slice(i, i + 2))); } return "rgba(" + colorChange.join(",") + "," + transparency + ")"; } else { return color; } }; YzDefaultIndexComponent.decorators = [ { type: Component, args: [{ selector: 'yz-default-index', template: "<div class=\"page\">\r\n <div class=\"common-svc-index\">\r\n <div class=\"common-svc-index-bg\"\r\n [ngStyle]=\"{'background':'linear-gradient(180deg, '+color+', '+colorDodge+', rgba(161, 33, 41, 0))'}\"></div>\r\n <img *ngIf=\"logoUrl\" [src]=\"logoUrl\" class=\"common-svc-index-logo\"/>\r\n <div class=\"common-svc-index-title\">{{ title }}</div>\r\n <div class=\"page-card\">\r\n <div class=\"tab-btn-row\">\r\n <ng-container *ngFor=\"let item of menus;let i=index\">\r\n <div [class]=\"'button'\"\r\n (click)=\"routerJump(item)\">\r\n <span>{{ item.text }}</span>\r\n <div class=\"button-icon\">\r\n <i class=\"anticon anticon-right\" nz-icon=\"\" type=\"right\"><svg viewBox=\"64 64 896 896\" fill=\"currentColor\" width=\"1em\" height=\"1em\" data-icon=\"right\" aria-hidden=\"true\"><path d=\"M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z\"></path></svg></i>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".page{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:1;background-color:#f7f7f7}.common-svc-index{position:relative}.common-svc-index .common-svc-index-bg{content:'';position:absolute;left:0;top:0;width:100%;height:326px;background:linear-gradient(180deg,#891616,rgba(161,33,41,.8) 71%,rgba(161,33,41,0))}.common-svc-index .common-svc-index-logo,.common-svc-index .common-svc-index-title,.common-svc-index .page-card{position:relative;z-index:1}.common-svc-index .common-svc-index-logo{max-height:80px;display:block;margin:0 auto;padding:30px 0;max-width:90%}.common-svc-index .common-svc-index-title{font-size:27px;font-weight:600;color:#fff;line-height:40px;display:block;text-align:center;padding:0 37px 40px}.common-svc-index .page-card{width:90%;padding:20px 0;margin:0 auto 30px;background:#fff;border-radius:6px;color:#333;align-items:center;justify-content:flex-start;font-size:17px;font-weight:400;line-height:20px;position:relative}.common-svc-index .page-card .tab-btn-row .button{font-size:17px;font-weight:400;border-radius:2px;color:#333;padding:25px 60px 25px 85px;display:flex;justify-content:space-between;position:relative}.common-svc-index .page-card .tab-btn-row .button:before{content:'';position:absolute;left:60px;top:31px;width:10px;height:10px}.common-svc-index .page-card .tab-btn-row .button:hover{opacity:.8}.common-svc-index .page-card .tab-btn-row .button:nth-child(1n):before{background-color:#909399}.common-svc-index .page-card .tab-btn-row .button:nth-child(2n):before{background-color:#67c23a}.common-svc-index .page-card .tab-btn-row .button:nth-child(3n):before{background-color:#e6a23c}.common-svc-index .page-card .tab-btn-row .button:nth-child(4n):before{background-color:#3ce6b9}.common-svc-index .page-card .tab-btn-row .button:nth-child(5n):before{background-color:#db3ce6}.common-svc-index .page-card .tab-btn-row .button:nth-child(6n):before{background-color:#a2e63c}.common-svc-index .page-card .tab-btn-row .button:nth-child(7n):before{background-color:#e6693c}.common-svc-index .page-card .tab-btn-row .button:nth-child(8n):before{background-color:#3ccde6}.button-icon{font-size:14px}.button-icon svg path,.button-icon svg rect{fill:#333}"] }] } ]; /** @nocollapse */ YzDefaultIndexComponent.ctorParameters = function () { return [ { type: UserService }, { type: ActivatedRoute }, { type: InfoService }, { type: Router } ]; }; return YzDefaultIndexComponent; }()); export { YzDefaultIndexComponent }; if (false) { /** @type {?} */ YzDefaultIndexComponent.prototype.logoUrl; /** @type {?} */ YzDefaultIndexComponent.prototype.title; /** @type {?} */ YzDefaultIndexComponent.prototype.menus; /** @type {?} */ YzDefaultIndexComponent.prototype.color; /** @type {?} */ YzDefaultIndexComponent.prototype.colorDodge; /** * @type {?} * @private */ YzDefaultIndexComponent.prototype.userService; /** * @type {?} * @private */ YzDefaultIndexComponent.prototype.activatedRoute; /** * @type {?} * @private */ YzDefaultIndexComponent.prototype.infoService; /** * @type {?} * @private */ YzDefaultIndexComponent.prototype.router; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXotZGVmYXVsdC1pbmRleC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy15dW56YWktbW9iaWxlLyIsInNvdXJjZXMiOlsibGF5b3V0L3l6LWRlZmF1bHQtaW5kZXgveXotZGVmYXVsdC1pbmRleC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVwRDtJQVdFLGlDQUFvQixXQUF3QixFQUN4QixjQUE4QixFQUM5QixXQUF3QixFQUN4QixNQUFjO1FBSGQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFSbEMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBVSxFQUFFLENBQUM7UUFDbEIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGVBQVUsR0FBRyxFQUFFLENBQUM7SUFLaEIsQ0FBQzs7OztJQUVELDBDQUFROzs7SUFBUjtRQUFBLGlCQXlCQzs7WUF4Qk8sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUzs7OztRQUFDLFVBQUEsR0FBRzs7Z0JBQzlCLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVTs7Z0JBRTNCLFNBQVMsR0FBRyxLQUFJLENBQUMsV0FBVyxDQUFD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RyxDQUFDLEdBQUcsR0FBRyxHQUFHLFlBQVksR0FBRyxHQUFHLENBQUM7U0FDbkU7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDOztnQkFqRkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLG90Q0FBZ0Q7O2lCQUVqRDs7OztnQkFQTyxXQUFXO2dCQURYLGNBQWM7Z0JBRWQsV0FBVztnQkFGSyxNQUFNOztJQXVGOUIsOEJBQUM7Q0FBQSxBQW5GRCxJQW1GQztTQTlFWSx1QkFBdUI7OztJQUNsQywwQ0FBcUI7O0lBQ3JCLHdDQUFtQjs7SUFDbkIsd0NBQWtCOztJQUNsQix3Q0FBVzs7SUFDWCw2Q0FBZ0I7Ozs7O0lBQ0osOENBQWdDOzs7OztJQUNoQyxpREFBc0M7Ozs7O0lBQ3RDLDhDQUFnQzs7Ozs7SUFDaEMseUNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge1VzZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vdXNlci91c2VyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJbmZvU2VydmljZX0gZnJvbSBcIi4uLy4uL2luZm8vaW5mby5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3l6LWRlZmF1bHQtaW5kZXgnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi95ei1kZWZhdWx0LWluZGV4LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi95ei1kZWZhdWx0LWluZGV4LmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFl6RGVmYXVsdEluZGV4Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBsb2dvVXJsOiBzdHJpbmcgPSAnJztcclxuICB0aXRsZTogc3RyaW5nID0gJyc7XHJcbiAgbWVudXM6IGFueVtdID0gW107XHJcbiAgY29sb3IgPSAnJztcclxuICBjb2xvckRvZGdlID0gJyc7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpbmZvU2VydmljZTogSW5mb1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBtZW51cyA9IHRoaXMudXNlclNlcnZpY2UuZ2V0KCkubWVudSB8fCBbXTtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgY29uc3Qgc3lzdGVtQ29kZSA9IHJlcy5zeXN0ZW1Db2RlO1xyXG5cclxuICAgICAgY29uc3QgbW9iaWxlQXBwID0gdGhpcy51c2VyU2VydmljZS5maW5kTWVudUJ5U3lzdGVtQ29kZShtZW51cywgJ21vYmlsZUFwcCcpO1xyXG4gICAgICBjb25zdCBhcHAgPSB0aGlzLnVzZXJTZXJ2aWNlLmZpbmRNZW51QnlTeXN0ZW1Db2RlKG1vYmlsZUFwcC5jaGlsZHJlbiwgc3lzdGVtQ29kZSk7XHJcbiAgICAgIGlmIChhcHApIHtcclxuICAgICAgICB0aGlzLnRpdGxlID0gYXBwLnRleHQ7XHJcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gYXBwLmNoaWxkcmVuIHx8IFtdO1xyXG4gICAgICAgIHRoaXMubWVudXMgPSBncm91cHMuZmxhdE1hcChncm91cCA9PiBncm91cC5jaGlsZHJlbiB8fCBbXSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8g55So5Lyg6L+H5p2l55qE5qCH6aKY6KaG55uWXHJcbiAgICAgIGlmIChyZXMudGl0bGUpIHtcclxuICAgICAgICB0aGlzLnRpdGxlID0gcmVzLnRpdGxlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgdGhpcy5pbmZvU2VydmljZS5nZXRTeXN0ZW1JbmZvKCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMubG9nb1VybCA9IHJlcy5tYXhMb2dvVXJsO1xyXG4gICAgICBpZiAocmVzLmNsaWVudEVuZCAmJiByZXMuY2xpZW50RW5kLmNvbG9yKSB7XHJcbiAgICAgICAgdGhpcy5jb2xvciA9IHJlcy5jbGllbnRFbmQuY29sb3I7XHJcbiAgICAgICAgdGhpcy5jb2xvckRvZGdlID0gdGhpcy5jb2xvclJnYmEodGhpcy5jb2xvciwgMC43MSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcblxyXG4gIHJvdXRlckp1bXAoaXRlbTogYW55KSB7XHJcbiAgICBpZiAoaXRlbS5saW5rKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoaXRlbS5saW5rKTtcclxuICAgIH0gZWxzZSBpZiAoaXRlbS5hcHBVcmwpIHtcclxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBpdGVtLmFwcFVybDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOWNgeWFrei/m+WItuminOiJsuWAvOWHj+a3oVxyXG4gICAqIEBwYXJhbSB2YWx1ZSDpopzoibLlgLxcclxuICAgKiBAcGFyYW0gdHJhbnNwYXJlbmN5IOmAj+aYjuW6pjw9MVxyXG4gICAqL1xyXG4gIGNvbG9yUmdiYSh2YWx1ZSwgdHJhbnNwYXJlbmN5KSB7XHJcbiAgICAvLyAxNui/m+WItuminOiJsuWAvOeahOato+WImVxyXG4gICAgY29uc3QgcmVnID0gL14jKFswLTlhLWZBLWZdezN9fFswLTlhLWZBLWZdezZ9KSQvO1xyXG4gICAgLy8g5oqK6aKc6Imy5YC85Y+Y5oiQ5bCP5YaZXHJcbiAgICBsZXQgY29sb3IgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgaWYgKHJlZy50ZXN0KGNvbG9yKSkge1xyXG4gICAgICAvLyDlpoLmnpzlj6rmnInkuInkvY3nmoTlgLzvvIzpnIDlj5jmiJDlha3kvY3vvIzlpoLvvJojZmZmID0+ICNmZmZmZmZcclxuICAgICAgaWYgKGNvbG9yLmxlbmd0aCA9PT0gNCkge1xyXG4gICAgICAgIGxldCBjb2xvck5ldyA9IFwiI1wiO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgNDsgaSArPSAxKSB7XHJcbiAgICAgICAgICBjb2xvck5ldyArPSBjb2xvci5zbGljZShpLCBpICsgMSkuY29uY2F0KGNvbG9yLnNsaWNlKGksIGkgKyAxKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbG9yID0gY29sb3JOZXc7XHJcbiAgICAgIH1cclxuICAgICAgLy8g5aSE55CG5YWt5L2N55qE6aKc6Imy5YC877yM6L2s5Li6UkdCXHJcbiAgICAgIGNvbnN0IGNvbG9yQ2hhbmdlID0gW107XHJcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgNzsgaSArPSAyKSB7XHJcbiAgICAgICAgY29sb3JDaGFuZ2UucHVzaChwYXJzZUludChcIjB4XCIgKyBjb2xvci5zbGljZShpLCBpICsgMikpKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gXCJyZ2JhKFwiICsgY29sb3JDaGFuZ2Uuam9pbihcIixcIikgKyBcIixcIiArIHRyYW5zcGFyZW5jeSArIFwiKVwiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGNvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19