Commit ee1e94db authored by 神楽坂玲奈's avatar 神楽坂玲奈

页面

parent 2529f9ec
.example-full-width { .example-full-width {
width: 100%; width: 100%;
} }
md-select {
margin: 16px 0;
}
\ No newline at end of file
<div *ngIf="app"> <div *ngIf="app">
<!--<h3 md-subheader>基本信息</h3>--> <!--<h3 md-subheader>基本信息</h3>-->
<form class="example-form"> <form class="example-form">
<md-select placeholder="类别" [(ngModel)]="app.category" name="category" class="example-full-width">
<md-option *ngFor="let l of ['game','runtime','emulator','module']" [value]="l">{{l}}</md-option>
</md-select>
<md-input-container class="example-full-width"> <md-input-container class="example-full-width">
<input md-input name="id" placeholder="ID" disabled [(ngModel)]="app.id"> <input md-input name="tags" placeholder="标签" [(ngModel)]="tags">
<md-hint align="end">JSON string[],不会写请联系 zh99998@gmail.com</md-hint>
</md-input-container> </md-input-container>
<md-input-container class="example-full-width"> <md-input-container class="example-full-width">
<input md-input name="name" placeholder="First name" [(ngModel)]="app.name['zh-CN']"> <input md-input name="tags" placeholder="开发者" [(ngModel)]="app.author">
</md-input-container> </md-input-container>
<p> <md-input-container class="example-full-width">
<md-input-container class="example-full-width"> <input md-input name="tags" placeholder="网站" [(ngModel)]="app.homepage">
<textarea md-input placeholder="Address">1600 Amphitheatre Pkwy</textarea> <md-hint align="end">以 http:// 或 https:// 开头,没有可留空</md-hint>
</md-input-container> </md-input-container>
<md-input-container class="example-full-width">
<textarea md-input placeholder="Address 2"></textarea>
</md-input-container>
</p>
<table class="example-full-width" cellspacing="0"> <md-input-container class="example-full-width">
<tr> <input md-input name="tags" placeholder="聊天室" [(ngModel)]="app.conference">
<td> <md-hint align="end">游戏类应用通常与 ID 相同,其他类型的应用留空</md-hint>
<md-input-container class="example-full-width"> </md-input-container>
<input md-input placeholder="City">
</md-input-container> <md-input-container class="example-full-width">
</td> <input md-input name="tags" placeholder="应用支持的语言" [(ngModel)]="locales">
<td> <md-hint align="end">JSON string[],不会写请联系 zh99998@gmail.com</md-hint>
<md-input-container class="example-full-width"> </md-input-container>
<input md-input placeholder="State">
</md-input-container>
</td>
<td>
<md-input-container class="example-full-width">
<input md-input #postalCode maxlength="5" placeholder="Postal Code" value="94043">
<md-hint align="end">{{postalCode.value.length}} / 5</md-hint>
</md-input-container>
</td>
</tr>
</table>
<button md-raised-button color="primary">提交</button> <button md-raised-button color="primary">提交</button>
</form> </form>
......
<!--<h3 md-subheader>语言</h3>--> <!--<h3 md-subheader>语言</h3>-->
<md-tab-group> <md-tab-group *ngIf="app">
<md-tab *ngFor="let locale of locales" [label]="locale"> <md-tab *ngFor="let locale of locales" [label]="locale">
<form class="example-form" style="margin-top:16px;"> <form class="example-form" style="margin-top:16px;">
<md-input-container class="example-full-width"> <md-input-container class="example-full-width">
...@@ -8,7 +8,16 @@ ...@@ -8,7 +8,16 @@
</md-input-container> </md-input-container>
<md-input-container class="example-full-width"> <md-input-container class="example-full-width">
<textarea md-input name="description" placeholder="应用介绍" [(ngModel)]="app.description">1600 Amphitheatre Pkwy</textarea> <textarea md-input name="description" placeholder="应用介绍"
[(ngModel)]="app.description[locale]"></textarea>
<md-hint align="end">支持 Markdown 语法</md-hint>
</md-input-container>
<md-input-container class="example-full-width">
<textarea md-input name="news" placeholder="新闻" [(ngModel)]="news[locale]"></textarea>
<md-hint align="end">JSON &#123;title: string, url: string, image: string&#125;[],不会写请联系
zh99998@gmail.com
</md-hint>
</md-input-container> </md-input-container>
<button md-raised-button color="primary">提交</button> <button md-raised-button color="primary">提交</button>
......
import {Component, OnInit} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import App from '../models/browserapp'; import App, {I18n} from '../models/browserapp';
import {AppService} from './app.service'; import {AppService} from './app.service';
import {ActivatedRoute, Params} from '@angular/router'; import {ActivatedRoute, Params} from '@angular/router';
import 'rxjs/Rx'; import 'rxjs/Rx';
...@@ -14,6 +14,7 @@ import {DomSanitizer} from '@angular/platform-browser'; ...@@ -14,6 +14,7 @@ import {DomSanitizer} from '@angular/platform-browser';
export class AppLocalesComponent implements OnInit { export class AppLocalesComponent implements OnInit {
app: App; app: App;
locales: string[]; locales: string[];
news: I18n<string> = {};
constructor(private appService: AppService, private route: ActivatedRoute, iconRegistry: MdIconRegistry, sanitizer: DomSanitizer) { constructor(private appService: AppService, private route: ActivatedRoute, iconRegistry: MdIconRegistry, sanitizer: DomSanitizer) {
} }
...@@ -23,7 +24,10 @@ export class AppLocalesComponent implements OnInit { ...@@ -23,7 +24,10 @@ export class AppLocalesComponent implements OnInit {
.switchMap((params: Params) => this.appService.getApp(params['id'])) .switchMap((params: Params) => this.appService.getApp(params['id']))
.subscribe(app => { .subscribe(app => {
this.app = app; this.app = app;
this.locales = Object.keys(this.app.name); this.locales = Object.keys(app.name);
for (let [locale, news] of Object.entries(app.news)) {
this.news[locale] = JSON.stringify(news);
}
}); });
} }
} }
<h3 md-subheader>语言</h3> <md-tab-group *ngIf="app">
<md-tab *ngFor="let package of packages" [label]="package_description(package)">
<form class="example-form" style="margin-top:16px;">
<md-input-container class="example-full-width">
<input md-input name="name" placeholder="应用名称" [(ngModel)]="app.name[locale]">
</md-input-container>
<md-input-container class="example-full-width">
<textarea md-input name="description" placeholder="应用介绍"
[(ngModel)]="app.description[locale]"></textarea>
<md-hint align="end">支持 Markdown 语法</md-hint>
</md-input-container>
<md-input-container class="example-full-width">
<textarea md-input name="news" placeholder="新闻" [(ngModel)]="news[locale]"></textarea>
<md-hint align="end">JSON &#123;title: string, url: string, image: string&#125;[],不会写请联系
zh99998@gmail.com
</md-hint>
</md-input-container>
<button md-raised-button color="primary">提交</button>
</form>
</md-tab>
</md-tab-group>
<md-tab-group> <md-tab-group>
<md-tab *ngFor="let locale of locales" [label]="locale"> <md-tab *ngFor="let locale of locales" [label]="locale">
......
...@@ -24,4 +24,8 @@ export class AppPackagesComponent implements OnInit { ...@@ -24,4 +24,8 @@ export class AppPackagesComponent implements OnInit {
this.app = app; this.app = app;
}); });
} }
package_description(_package) {
_package.platform
}
} }
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
</ul> </ul>
<h3>编辑应用</h3> <h3>编辑应用</h3>
<ul> <ul>
<li><a md-list-item routerLink="detail">详情</a></li> <li><a md-list-item routerLink="detail">基本信息</a></li>
<li><a md-list-item routerLink="locales">语言</a></li> <li><a md-list-item routerLink="locales">语言</a></li>
<li><a md-list-item routerLink="packages">文件</a></li> <li><a md-list-item routerLink="packages">文件</a></li>
</ul> </ul>
</md-sidenav> </md-sidenav>
......
<md-nav-list> <md-nav-list>
<h3 md-subheader>所有应用</h3> <h3 md-subheader>所有应用</h3>
<md-list-item *ngFor="let app of apps" [routerLink]="app.id"> <md-list-item *ngFor="let app of apps" [routerLink]="app.id">
<img md-list-avatar src="https://mycard.moe/logo.png" alt="..."> <img md-list-avatar [src]="app.icon" alt="...">
<h3 md-line> {{app.id}} </h3> <h3 md-line> {{app.id}} </h3>
<p md-line> <p md-line>
<span> {{app.id}} </span> <span> {{app.id}} </span>
......
...@@ -17,7 +17,7 @@ export class AppsComponent implements OnInit { ...@@ -17,7 +17,7 @@ export class AppsComponent implements OnInit {
} }
async ngOnInit() { async ngOnInit() {
console.log(await this.getApps()); await this.getApps();
} }
async getApps() { async getApps() {
...@@ -30,6 +30,5 @@ export class AppsComponent implements OnInit { ...@@ -30,6 +30,5 @@ export class AppsComponent implements OnInit {
if (!app) { if (!app) {
return; return;
} }
console.log(app);
} }
} }
/** /**
* Created by zh99998 on 2017/1/4. * Created by zh99998 on 2017/1/4.
*/ */
interface I18n<T> { export interface I18n<T> {
[locale: string]: T; [locale: string]: T;
} }
class App { class App {
id: string; id: string;
name: I18n<string>; name: I18n<string>;
description: I18n<string> = {};
parent?: string; parent?: string;
locales: string[]; locales: string[] = [];
news: I18n<{title: string, url: string, image: string}[]>; news: I18n<{title: string, url: string, image: string}[]> = {};
conference?: string; conference?: string;
data: any; data: any;
icon = 'http://www.immersion-3d.com/wp-content/uploads/2015/12/image-placeholder-500x500.jpg'; icon = 'http://www.immersion-3d.com/wp-content/uploads/2015/12/image-placeholder-500x500.jpg';
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment