From ef18cca293a817e22908c9adf77c3cbe8a640d8a Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Fri, 13 Jul 2018 10:04:24 +0800
Subject: [PATCH] 提交修改
---
src/app/delon.module.ts | 14
src/app/routes/home-page/home-page/home-page.component.ts | 105 ++++++
src/environments/environment.hmr.ts | 2
_mock/index.ts | 4
src/app/routes/home-page/home-page-routing.module.ts | 11
src/app/routes/home-page/home-page/home-page.component.less | 0
src/app/routes/home-page/home-page.module.ts | 11
_mock/_profile.ts | 148 ++++++++
src/app/routes/reports/query/query.component.ts | 2
yarn.lock | 4
src/environments/environment.prod.ts | 2
_mock/_rule.ts | 74 ++++
src/app/routes/routes-routing.module.ts | 6
package.json | 1
src/environments/environment.ts | 2
_mock/README.md | 1
_mock/_api.ts | 271 +++++++++++++++
_mock/_chart.ts | 214 ++++++++++++
src/app/routes/home-page/home-page/home-page.component.html | 109 ++++++
19 files changed, 969 insertions(+), 12 deletions(-)
diff --git a/_mock/README.md b/_mock/README.md
new file mode 100644
index 0000000..ac06b06
--- /dev/null
+++ b/_mock/README.md
@@ -0,0 +1 @@
+[Document](http://ng-alain.com/docs/mock)
diff --git a/_mock/_api.ts b/_mock/_api.ts
new file mode 100644
index 0000000..04b577c
--- /dev/null
+++ b/_mock/_api.ts
@@ -0,0 +1,271 @@
+import { MockRequest } from '@delon/mock';
+// region: mock data
+
+const titles = [
+ 'Alipay',
+ 'Angular',
+ 'Ant Design',
+ 'Ant Design Pro',
+ 'Bootstrap',
+ 'React',
+ 'Vue',
+ 'Webpack'
+];
+
+const avatars = [
+ 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', // Alipay
+ 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', // Angular
+ 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', // Ant Design
+ 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', // Ant Design Pro
+ 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', // Bootstrap
+ 'https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png', // React
+ 'https://gw.alipayobjects.com/zos/rmsportal/ComBAopevLwENQdKWiIn.png', // Vue
+ 'https://gw.alipayobjects.com/zos/rmsportal/nxkuOJlFJuAUhzlMTCEe.png' // Webpack
+];
+const covers = [
+ 'https://gw.alipayobjects.com/zos/rmsportal/HrxcVbrKnCJOZvtzSqjN.png',
+ 'https://gw.alipayobjects.com/zos/rmsportal/alaPpKWajEbIYEUvvVNf.png',
+ 'https://gw.alipayobjects.com/zos/rmsportal/RLwlKSYGSXGHuWSojyvp.png',
+ 'https://gw.alipayobjects.com/zos/rmsportal/gLaIAoVWTtLbBWZNYEMg.png'
+];
+const desc = [
+ '������������������������������ ���������������������������������������',
+ '���������������������������������������������������������������������������',
+ '������������������������������������������������������',
+ '������������������������������������������������������������������',
+ '���������������������������������������������������������������������'
+];
+
+const user = [
+ '������',
+ 'cipchk',
+ '���������',
+ '���������',
+ '���������',
+ '���������',
+ '���������',
+ '���������',
+ '������',
+ '������',
+ '���������',
+ '������'
+];
+
+// endregion
+
+function getFakeList(count: number = 20): any[] {
+ const list = [];
+ for (let i = 0; i < count; i += 1) {
+ list.push({
+ id: `fake-list-${i}`,
+ owner: user[i % 10],
+ title: titles[i % 8],
+ avatar: avatars[i % 8],
+ cover: parseInt((i / 4).toString(), 10) % 2 === 0 ? covers[i % 4] : covers[3 - (i % 4)],
+ status: ['active', 'exception', 'normal'][i % 3],
+ percent: Math.ceil(Math.random() * 50) + 50,
+ logo: avatars[i % 8],
+ href: 'https://ant.design',
+ updatedAt: new Date(new Date().getTime() - (1000 * 60 * 60 * 2 * i)),
+ createdAt: new Date(new Date().getTime() - (1000 * 60 * 60 * 2 * i)),
+ subDescription: desc[i % 5],
+ description: '���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������',
+ activeUser: Math.ceil(Math.random() * 100000) + 100000,
+ newUser: Math.ceil(Math.random() * 1000) + 1000,
+ star: Math.ceil(Math.random() * 100) + 100,
+ like: Math.ceil(Math.random() * 100) + 100,
+ message: Math.ceil(Math.random() * 10) + 10,
+ content: '��������������������������������������� ant.design��������������������������������������������������������������������������������������������������������������������������������������� ant.design���������������������������������������������������������������������������������������������������������������',
+ members: [
+ {
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ZiESqWwCXBRQoaPONSJe.png',
+ name: '���������',
+ },
+ {
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/tBOxZPlITHqwlGjsJWaF.png',
+ name: '���������',
+ },
+ {
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/sBxjgqiuHMGRkIjqlQCd.png',
+ name: '���������',
+ },
+ ]
+ });
+ }
+
+ return list;
+}
+
+function getNotice(): any[] {
+ return [
+ {
+ id: 'xxx1',
+ title: titles[0],
+ logo: avatars[0],
+ description: '������������������������������ ���������������������������������������',
+ updatedAt: new Date(),
+ member: '���������������',
+ href: '',
+ memberLink: '',
+ },
+ {
+ id: 'xxx2',
+ title: titles[1],
+ logo: avatars[1],
+ description: '���������������������������������������������������������������������������',
+ updatedAt: new Date('2017-07-24'),
+ member: '���������������������',
+ href: '',
+ memberLink: '',
+ },
+ {
+ id: 'xxx3',
+ title: titles[2],
+ logo: avatars[2],
+ description: '������������������������������������������������������������������',
+ updatedAt: new Date(),
+ member: '���������������',
+ href: '',
+ memberLink: '',
+ },
+ {
+ id: 'xxx4',
+ title: titles[3],
+ logo: avatars[3],
+ description: '���������������������������������������������������������������������',
+ updatedAt: new Date('2017-07-23'),
+ member: '���������������',
+ href: '',
+ memberLink: '',
+ },
+ {
+ id: 'xxx5',
+ title: titles[4],
+ logo: avatars[4],
+ description: '������������',
+ updatedAt: new Date('2017-07-23'),
+ member: '���������������������',
+ href: '',
+ memberLink: '',
+ },
+ {
+ id: 'xxx6',
+ title: titles[5],
+ logo: avatars[5],
+ description: '������������������������������������������������������',
+ updatedAt: new Date('2017-07-23'),
+ member: '���������������������',
+ href: '',
+ memberLink: '',
+ },
+ ];
+}
+
+function getActivities(): any[] {
+ return [
+ {
+ id: 'trend-1',
+ updatedAt: new Date(),
+ user: {
+ name: '���������',
+ avatar: avatars[0],
+ },
+ group: {
+ name: '���������������������',
+ link: 'http://github.com/',
+ },
+ project: {
+ name: '������������',
+ link: 'http://github.com/',
+ },
+ template: '��� @{group} ������������ @{project}',
+ },
+ {
+ id: 'trend-2',
+ updatedAt: new Date(),
+ user: {
+ name: '���������',
+ avatar: avatars[1],
+ },
+ group: {
+ name: '���������������������',
+ link: 'http://github.com/',
+ },
+ project: {
+ name: '������������',
+ link: 'http://github.com/',
+ },
+ template: '��� @{group} ������������ @{project}',
+ },
+ {
+ id: 'trend-3',
+ updatedAt: new Date(),
+ user: {
+ name: '���������',
+ avatar: avatars[2],
+ },
+ group: {
+ name: '���������������',
+ link: 'http://github.com/',
+ },
+ project: {
+ name: '������������',
+ link: 'http://github.com/',
+ },
+ template: '��� @{group} ������������ @{project}',
+ },
+ {
+ id: 'trend-4',
+ updatedAt: new Date(),
+ user: {
+ name: '���������',
+ avatar: avatars[3],
+ },
+ project: {
+ name: '5 ���������������',
+ link: 'http://github.com/',
+ },
+ template: '��� @{project} ������������������������',
+ },
+ {
+ id: 'trend-5',
+ updatedAt: new Date(),
+ user: {
+ name: '���������',
+ avatar: avatars[4],
+ },
+ project: {
+ name: '������������',
+ link: 'http://github.com/',
+ },
+ comment: {
+ name: '������',
+ link: 'http://github.com/',
+ },
+ template: '��� @{project} ��������� @{comment}',
+ },
+ {
+ id: 'trend-6',
+ updatedAt: new Date(),
+ user: {
+ name: '������',
+ avatar: avatars[5],
+ },
+ group: {
+ name: '���������������',
+ link: 'http://github.com/',
+ },
+ project: {
+ name: '������������',
+ link: 'http://github.com/',
+ },
+ template: '��� @{group} ������������ @{project}',
+ },
+ ];
+}
+
+export const APIS = {
+ '/api/list': (req: MockRequest) => getFakeList(req.queryString.count),
+ '/api/notice': () => getNotice(),
+ '/api/activities': () => getActivities()
+};
diff --git a/_mock/_chart.ts b/_mock/_chart.ts
new file mode 100644
index 0000000..974bcbc
--- /dev/null
+++ b/_mock/_chart.ts
@@ -0,0 +1,214 @@
+// tslint:disable
+import * as Mock from 'mockjs';
+import * as moment from "moment";
+
+// region: mock data
+
+const visitData = [];
+const beginDay = new Date().getTime();
+
+const fakeY = [7, 5, 4, 2, 4, 7, 5, 6, 5, 9, 6, 3, 1, 5, 3, 6, 5];
+for (let i = 0; i < fakeY.length; i += 1) {
+ visitData.push({
+ x: moment(new Date(beginDay + 1000 * 60 * 60 * 24 * i)).format(
+ "YYYY-MM-DD"
+ ),
+ y: fakeY[i]
+ });
+}
+
+const visitData2 = [];
+const fakeY2 = [1, 6, 4, 8, 3, 7, 2];
+for (let i = 0; i < fakeY2.length; i += 1) {
+ visitData2.push({
+ x: moment(new Date(beginDay + 1000 * 60 * 60 * 24 * i)).format(
+ "YYYY-MM-DD"
+ ),
+ y: fakeY2[i]
+ });
+}
+
+const salesData = [];
+// for (let i = 0; i < 12; i += 1) {
+// salesData.push({
+// x: `${i + 1}���`,
+// y: Math.floor(Math.random() * 1000) + 200
+// });
+// }
+for (let i = 0; i < 24; i += 1) {
+ salesData.push({
+ x: `${i}���`,
+ y: Math.floor(Math.random() * 1000) + 200
+ });
+}
+const searchData = [];
+for (let i = 0; i < 50; i += 1) {
+ searchData.push({
+ index: i + 1,
+ keyword: `���������������-${i}`,
+ count: Math.floor(Math.random() * 1000),
+ range: Math.floor(Math.random() * 100),
+ status: Math.floor((Math.random() * 10) % 2)
+ });
+}
+const salesTypeData = [
+ {
+ x: "������������",
+ y: 4544
+ },
+ {
+ x: "������������",
+ y: 3321
+ },
+ {
+ x: "������������",
+ y: 3113
+ },
+ {
+ x: "������������",
+ y: 2341
+ },
+ {
+ x: "������������",
+ y: 1231
+ },
+ {
+ x: "������",
+ y: 1231
+ }
+];
+
+const salesTypeDataOnline = [
+ {
+ x: "������������",
+ y: 244
+ },
+ {
+ x: "������������",
+ y: 321
+ },
+ {
+ x: "������������",
+ y: 311
+ },
+ {
+ x: "������������",
+ y: 41
+ },
+ {
+ x: "������������",
+ y: 121
+ },
+ {
+ x: '������',
+ y: 111
+ }
+];
+
+const salesTypeDataOffline = [
+ {
+ x: '������������',
+ y: 99
+ },
+ {
+ x: '������������',
+ y: 188
+ },
+ {
+ x: '������������',
+ y: 344
+ },
+ {
+ x: '������������',
+ y: 255
+ },
+ {
+ x: '������',
+ y: 65
+ }
+];
+
+const offlineData = [];
+for (let i = 0; i < 10; i += 1) {
+ offlineData.push({
+ name: `������${i}`,
+ cvr: Math.ceil(Math.random() * 9) / 10
+ });
+}
+const offlineChartData = [];
+for (let i = 0; i < 20; i += 1) {
+ offlineChartData.push({
+ x: new Date().getTime() + 1000 * 60 * 30 * i,
+ y1: Math.floor(Math.random() * 100) + 10,
+ y2: Math.floor(Math.random() * 100) + 10
+ });
+}
+
+const radarOriginData = [
+ {
+ name: '������',
+ ref: 10,
+ koubei: 8,
+ output: 4,
+ contribute: 5,
+ hot: 7
+ },
+ {
+ name: '������',
+ ref: 3,
+ koubei: 9,
+ output: 6,
+ contribute: 3,
+ hot: 1
+ },
+ {
+ name: '������',
+ ref: 4,
+ koubei: 1,
+ output: 6,
+ contribute: 5,
+ hot: 7
+ }
+];
+
+//
+const radarData = [];
+const radarTitleMap = {
+ ref: '������',
+ koubei: '������',
+ output: '������',
+ contribute: '������',
+ hot: '������'
+};
+radarOriginData.forEach(item => {
+ Object.keys(item).forEach(key => {
+ if (key !== 'name') {
+ radarData.push({
+ name: item.name,
+ label: radarTitleMap[key],
+ value: item[key]
+ });
+ }
+ });
+});
+
+// endregion
+
+export const CHARTS = {
+ '/chart': Object.assign({}, {
+ visitData,
+ visitData2,
+ salesData,
+ searchData,
+ offlineData,
+ offlineChartData,
+ salesTypeData,
+ salesTypeDataOnline,
+ salesTypeDataOffline,
+ radarData
+ }),
+ '/chart/visit': Object.assign([], visitData),
+ '/chart/tags': Mock.mock({
+ 'list|100': [{ name: '@city', 'value|1-100': 150, 'type|0-2': 1 }]
+ })
+};
diff --git a/_mock/_profile.ts b/_mock/_profile.ts
new file mode 100644
index 0000000..729a371
--- /dev/null
+++ b/_mock/_profile.ts
@@ -0,0 +1,148 @@
+const basicGoods = [
+ {
+ id: '1234561',
+ name: '��������� 550ml',
+ barcode: '12421432143214321',
+ price: '2.00',
+ num: '1',
+ amount: '2.00',
+ },
+ {
+ id: '1234562',
+ name: '������ 300ml',
+ barcode: '12421432143214322',
+ price: '3.00',
+ num: '2',
+ amount: '6.00',
+ },
+ {
+ id: '1234563',
+ name: '���������������',
+ barcode: '12421432143214323',
+ price: '7.00',
+ num: '4',
+ amount: '28.00',
+ },
+ {
+ id: '1234564',
+ name: '���������������������',
+ barcode: '12421432143214324',
+ price: '8.50',
+ num: '3',
+ amount: '25.50',
+ },
+];
+
+const basicProgress = [
+ {
+ key: '1',
+ time: '2017-10-01 14:10',
+ rate: '������������',
+ status: 'processing',
+ operator: '��������� ID1234',
+ cost: '5mins',
+ },
+ {
+ key: '2',
+ time: '2017-10-01 14:05',
+ rate: '���������������',
+ status: 'success',
+ operator: '��������� ID1234',
+ cost: '1h',
+ },
+ {
+ key: '3',
+ time: '2017-10-01 13:05',
+ rate: '���������������',
+ status: 'success',
+ operator: '��������� ID1234',
+ cost: '5mins',
+ },
+ {
+ key: '4',
+ time: '2017-10-01 13:00',
+ rate: '������������������',
+ status: 'success',
+ operator: '������',
+ cost: '1h',
+ },
+ {
+ key: '5',
+ time: '2017-10-01 12:00',
+ rate: '������������������',
+ status: 'success',
+ operator: '������',
+ cost: '5mins',
+ },
+];
+
+const advancedOperation1 = [
+ {
+ key: 'op1',
+ type: '������������������',
+ name: '���������',
+ status: 'agree',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '-',
+ },
+ {
+ key: 'op2',
+ type: '������������',
+ name: '���������',
+ status: 'reject',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '���������������',
+ },
+ {
+ key: 'op3',
+ type: '������������',
+ name: '���������',
+ status: 'agree',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '-',
+ },
+ {
+ key: 'op4',
+ type: '������������',
+ name: '���������',
+ status: 'agree',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '������',
+ },
+ {
+ key: 'op5',
+ type: '������������',
+ name: '���������',
+ status: 'agree',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '-',
+ },
+];
+
+const advancedOperation2 = [
+ {
+ key: 'op1',
+ type: '������������������',
+ name: '���������',
+ status: 'agree',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '-',
+ },
+];
+
+const advancedOperation3 = [
+ {
+ key: 'op1',
+ type: '������������',
+ name: '���������',
+ status: 'agree',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '-',
+ },
+];
+
+export const PROFILES = {
+ 'GET /profile/progress': basicProgress,
+ 'GET /profile/goods': basicGoods,
+ 'GET /profile/advanced': { advancedOperation1, advancedOperation2, advancedOperation3 }
+};
diff --git a/_mock/_rule.ts b/_mock/_rule.ts
new file mode 100644
index 0000000..bd555c5
--- /dev/null
+++ b/_mock/_rule.ts
@@ -0,0 +1,74 @@
+import { HttpRequest } from '@angular/common/http';
+import { MockRequest } from '@delon/mock';
+
+const list = [];
+
+for (let i = 0; i < 46; i += 1) {
+ list.push({
+ key: i,
+ disabled: ((i % 6) === 0),
+ href: 'https://ant.design',
+ avatar: ['https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png', 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png'][i % 2],
+ no: `TradeCode ${i}`,
+ title: `������������������ ${i}`,
+ owner: '���������',
+ description: '������������������',
+ callNo: Math.floor(Math.random() * 1000),
+ status: Math.floor(Math.random() * 10) % 4,
+ updatedAt: new Date(`2017-07-${Math.floor(i / 2) + 1}`),
+ createdAt: new Date(`2017-07-${Math.floor(i / 2) + 1}`),
+ progress: Math.ceil(Math.random() * 100),
+ });
+}
+
+function getRule(params: any) {
+ let ret = [...list];
+ if (params.sorter) {
+ const s = params.sorter.split('_');
+ ret = ret.sort((prev, next) => {
+ if (s[1] === 'descend') {
+ return next[s[0]] - prev[s[0]];
+ }
+ return prev[s[0]] - next[s[0]];
+ });
+ }
+ if (params.statusList && params.statusList.length > 0) {
+ ret = ret.filter(data => params.statusList.indexOf(data.status) > -1);
+ }
+ if (params.no) {
+ ret = ret.filter(data => data.no.indexOf(params.no) > -1);
+ }
+ return ret;
+}
+
+function removeRule(nos: string): boolean {
+ nos.split(',').forEach(no => {
+ const idx = list.findIndex(w => w.no === no);
+ if (idx !== -1) list.splice(idx, 1);
+ });
+ return true;
+}
+
+function saveRule(description: string) {
+ const i = Math.ceil(Math.random() * 10000);
+ list.unshift({
+ key: i,
+ href: 'https://ant.design',
+ avatar: ['https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png', 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png'][i % 2],
+ no: `TradeCode ${i}`,
+ title: `������������������ ${i}`,
+ owner: '���������',
+ description,
+ callNo: Math.floor(Math.random() * 1000),
+ status: Math.floor(Math.random() * 10) % 2,
+ updatedAt: new Date(),
+ createdAt: new Date(),
+ progress: Math.ceil(Math.random() * 100),
+ });
+}
+
+export const RULES = {
+ '/rule': (req: MockRequest) => getRule(req.queryString),
+ 'DELETE /rule': (req: MockRequest) => removeRule(req.queryString.nos),
+ 'POST /rule': (req: MockRequest) => saveRule(req.body.description)
+};
diff --git a/_mock/index.ts b/_mock/index.ts
new file mode 100644
index 0000000..34345bf
--- /dev/null
+++ b/_mock/index.ts
@@ -0,0 +1,4 @@
+export * from './_profile';
+export * from './_rule';
+export * from './_api';
+export * from './_chart';
diff --git a/package.json b/package.json
index 0ca5c08..a003894 100644
--- a/package.json
+++ b/package.json
@@ -48,6 +48,7 @@
"@delon/auth": "0.6.6",
"@delon/cache": "0.6.6",
"@delon/theme": "0.6.6",
+ "@delon/mock": "^0.6.6",
"@ngx-translate/core": "^9.0.0",
"@ngx-translate/http-loader": "^2.0.0",
"@types/jquery": "^3.3.0",
diff --git a/src/app/delon.module.ts b/src/app/delon.module.ts
index 0305521..b51cc22 100644
--- a/src/app/delon.module.ts
+++ b/src/app/delon.module.ts
@@ -175,11 +175,11 @@
import { AlainACLModule } from '@delon/acl';
import { DelonCacheModule } from '@delon/cache';
// mock
-// import { DelonMockModule } from '@delon/mock';
-// import * as MOCKDATA from '../../_mock';
-// import { environment } from '@env/environment';
-// const MOCKMODULE = !environment.production || environment.chore === true ?
-// [ DelonMockModule.forRoot({ data: MOCKDATA }) ] : [];
+import { DelonMockModule } from '@delon/mock';
+import * as MOCKDATA from '../../_mock';
+import { environment } from '@env/environment';
+const MOCKMODULE = !environment.production || environment.chore === true ?
+ [ DelonMockModule.forRoot({ data: MOCKDATA }) ] : [];
// region: global config functions
@@ -204,7 +204,7 @@
AdReuseTabModule.forRoot(), AdFullContentModule.forRoot(), AdXlsxModule.forRoot(), AdZipModule.forRoot(),
// auth
AlainAuthModule.forRoot({
- // ignores: [ `\\/login`, `assets\\/` ],
+ ignores: [ `\\/login`, `assets\\/` ],
token_send_key : 'X-Authorization',
token_send_template : 'Bearer ${token}',
token_send_place : 'header',
@@ -216,7 +216,7 @@
// cache
DelonCacheModule.forRoot(),
// mock
- // ...MOCKMODULE
+ ...MOCKMODULE
]
})
export class DelonModule {
diff --git a/src/app/routes/home-page/home-page-routing.module.ts b/src/app/routes/home-page/home-page-routing.module.ts
new file mode 100644
index 0000000..5601a76
--- /dev/null
+++ b/src/app/routes/home-page/home-page-routing.module.ts
@@ -0,0 +1,11 @@
+import { NgModule } from "@angular/core";
+import { HomePageComponent } from "./home-page/home-page.component";
+import { Routes, RouterModule } from "@angular/router";
+
+const routes: Routes = [{ path: "", component: HomePageComponent }];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class HomePageRoutingModule {}
diff --git a/src/app/routes/home-page/home-page.module.ts b/src/app/routes/home-page/home-page.module.ts
new file mode 100644
index 0000000..a3adbbb
--- /dev/null
+++ b/src/app/routes/home-page/home-page.module.ts
@@ -0,0 +1,11 @@
+import { NgModule } from "@angular/core";
+import { Routes, RouterModule } from "@angular/router";
+import { SharedModule } from "@shared/shared.module";
+import { HomePageRoutingModule } from "./home-page-routing.module";
+import { HomePageComponent } from "./home-page/home-page.component";
+
+@NgModule({
+ imports: [SharedModule, HomePageRoutingModule],
+ declarations: [HomePageComponent]
+})
+export class HomePageModule {}
diff --git a/src/app/routes/home-page/home-page/home-page.component.html b/src/app/routes/home-page/home-page/home-page.component.html
new file mode 100644
index 0000000..b3a8e0b
--- /dev/null
+++ b/src/app/routes/home-page/home-page/home-page.component.html
@@ -0,0 +1,109 @@
+<div class="content__title">
+ <h1>������������������</h1>
+</div>
+<div nz-row [nzGutter]="24" class="pt-lg">
+ <div nz-col nzXs="24" nzSm="12" nzMd="6" class="mb-md">
+ <div nz-row nzType="flex" nzAlign="middle" class="bg-primary rounded-md">
+ <div nz-col nzSpan="24" class="p-md text-white" style="height: 90px;text-align: center;">
+ <div style="height: 40px;" class="h2 mt0">{{ cardData.api }}</div>
+ <p class="text-nowrap mb0">AQI</p>
+ </div>
+ </div>
+ </div>
+ <div nz-col nzXs="24" nzSm="12" nzMd="6" class="mb-md">
+ <div nz-row nzType="flex" nzAlign="middle" class="bg-success rounded-md">
+ <div nz-col nzSpan="24" class="p-md text-white" style="height: 90px;text-align: center;">
+ <div style="height: 40px;" class="h2 mt0">{{ cardData.temperature }} ���</div>
+ <p class="text-nowrap mb0">������</p>
+ </div>
+ </div>
+ </div>
+ <div nz-col nzXs="24" nzSm="12" nzMd="6" class="mb-md">
+ <div nz-row nzType="flex" nzAlign="middle" class="bg-orange rounded-md">
+ <div nz-col nzSpan="24" class="p-md text-white" style="height: 90px;text-align: center;">
+ <div style="height: 40px;" class="h2 mt0">{{ cardData.windDirection }}</div>
+ <p class="text-nowrap mb0">������</p>
+ </div>
+ </div>
+ </div>
+ <div nz-col nzXs="24" nzSm="12" nzMd="6" class="mb-md">
+ <div nz-row nzType="flex" nzAlign="middle" class="bg-pink rounded-md">
+ <div nz-col nzSpan="24" class="p-md text-white" style="height: 90px;text-align: center;">
+ <div style="height: 40px;" class="h2 mt0">{{ cardData.pm25 }} mg/m��</div>
+ <p class="text-nowrap">PM2.5</p>
+ </div>
+ </div>
+ </div>
+</div>
+<div nz-row [nzGutter]="24" class="pt-lg">
+ <div nz-col nzXs="24" nzSm="12" nzMd="12" nzLg="8">
+ <chart-card [title]="'API������������'" total="216���" contentHeight="46px">
+ <mini-progress height="46" percent="60" target="60" strokeWidth="8" color="#13C2C2"></mini-progress>
+ </chart-card>
+ </div>
+ <div nz-col nzXs="24" nzSm="12" nzMd="12" nzLg="8">
+ <chart-card [title]="'PM2.5������������'" total="158���" contentHeight="46px">
+ <mini-progress height="46" percent="50" target="50" strokeWidth="8" color="#108ee9"></mini-progress>
+ </chart-card>
+ </div>
+ <div nz-col nzXs="24" nzSm="12" nzMd="12" nzLg="8">
+ <chart-card [title]="'PM10������������'" total="112���" contentHeight="46px">
+ <mini-progress height="46" percent="40" target="40" strokeWidth="8" color="#00a854"></mini-progress>
+ </chart-card>
+ </div>
+</div>
+<div nz-row [nzGutter]="24" class="pt-lg">
+ <div nz-col nzXs="24" nzMd="24">
+ <nz-card [nzBordered]="false">
+ <ng-template #title>
+ AQI���������������
+ <nz-dropdown>
+ <a class="ant-dropdown-link" nz-dropdown>
+ PM2.5 <i class="anticon anticon-down"></i>
+ </a>
+ <ul nz-menu>
+ <li nz-menu-item>
+ PM10
+ </li>
+ <li nz-menu-item>
+ ������������
+ </li>
+ <li nz-menu-item>
+ ������������
+ </li>
+ <li nz-menu-item>
+ ������������
+ </li>
+ <li nz-menu-item>
+ ������
+ </li>
+ </ul>
+ </nz-dropdown>
+ </ng-template>
+ <bar height="275" [data]="salesData"></bar>
+ </nz-card>
+ </div>
+</div>
+<div nz-row [nzGutter]="24" class="pt-lg">
+ <div nz-col nzXs="24" nzMd="24">
+ <nz-card [nzBordered]="false">
+ <ng-template #title>
+ ������������GIS������
+ <small class="text-sm font-weight-normal">������: 128</small>
+ </ng-template>
+ <iframe style="width: 100%; height: 500px;" target="_top" src="http://monitor-api2.7drlb.com/screen/map-page?areaCode=320583&accountId=1" frameborder="0"></iframe>
+ </nz-card>
+ </div>
+ </div>
+ <div nz-row [nzGutter]="24" class="pt-lg">
+ <div nz-col nzXs="24" nzMd="12">
+ <nz-card [nzBordered]="false">
+ <div echarts style="margin-top: 12px;" [options]="chartOption" [loading]="aqiChartLoading" class="line-chart" (chartInit)="onApiChartInit($event)"></div>
+ </nz-card>
+ </div>
+ <div nz-col nzXs="24" nzMd="12">
+ <nz-card [nzBordered]="false">
+ 22222222222
+ </nz-card>
+ </div>
+ </div>
diff --git a/src/app/routes/home-page/home-page/home-page.component.less b/src/app/routes/home-page/home-page/home-page.component.less
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/app/routes/home-page/home-page/home-page.component.less
diff --git a/src/app/routes/home-page/home-page/home-page.component.ts b/src/app/routes/home-page/home-page/home-page.component.ts
new file mode 100644
index 0000000..0bb0017
--- /dev/null
+++ b/src/app/routes/home-page/home-page/home-page.component.ts
@@ -0,0 +1,105 @@
+import { Component, OnInit } from "@angular/core";
+import { _HttpClient } from "@delon/theme";
+import { zip } from 'rxjs/observable/zip';
+
+@Component({
+ selector: "app-home-page",
+ templateUrl: "./home-page.component.html",
+ styleUrls: ["./home-page.component.less"]
+})
+export class HomePageComponent implements OnInit {
+ public cardData: {'api'?:number,'temperature'?:number,'windDirection'?: string,'pm25'?: number} = {};
+
+ constructor(
+ private http:_HttpClient,
+ ) {
+ }
+ salesData: any[] = [ ];
+ ngOnInit() {
+ zip(
+ this.http.get<any>('http://sapi.7drlb.com/api/mj?cityID=1102&apiKey=condition'),
+ this.http.get<any>('http://sapi.7drlb.com/api/mj?cityID=1102&apiKey=aqi')
+
+ ).subscribe(
+ ([conRes,aqiRes]) => {
+ if( conRes.code == 0 && aqiRes.code == 0 ) {
+ this.cardData.windDirection = conRes.data.condition.windDir;
+ this.cardData.temperature = conRes.data.condition.temp;
+ this.cardData.api = aqiRes.data.aqi.value;
+ this.cardData.pm25 = aqiRes.data.aqi.pm25;
+ }
+ }
+ );
+ this.http.get('/chart').subscribe((res: any) => {
+ // this.webSite = res.visitData.slice(0, 10);
+ this.salesData = res.salesData;
+ // this.offlineChartData = res.offlineChartData;
+ });
+ }
+ public aqiChartOption
+ public aqiEchartsIntance;
+ public aqiChartLoading = false;
+ public onApiChartInit(e): void {
+ this.aqiEchartsIntance = e;
+ }
+ private reloadChart(): void {
+ // const timeList = this.grid.columns.map(item => item.text);
+ if (!!this.aqiEchartsIntance) {
+ this.aqiChartOption = null;
+ this.aqiEchartsIntance.clear();
+ }
+ // let series = null;
+ // if ( this.chartSelectedIndex < this.grid.data.length ) {
+ // series = [{type: 'line', data: this.grid.data[this.chartSelectedIndex]}];
+ // }
+
+ // this.initOpton(chartOption ,{ xAxis : [{data : []}]});
+ // this.aqiChartOption = true;
+ this.initOpton(this.aqiChartOption ,{ xAxis : [{data : []}]});
+ }
+ private initOpton(chartOption,opt: {[key: string]: object}) {
+ const defaultOption = {
+ title: {
+ left: 'center'
+ },
+ tooltip : {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'cross',
+ label: {
+ backgroundColor: '#6a7985'
+ }
+ }
+ },
+ legend: {
+ data: []
+ },
+ toolbox: {
+ feature: {
+ saveAsImage: {}
+ }
+ },
+ grid: {
+ left: '3%',
+ right: '4%',
+ bottom: '3%',
+ containLabel: true
+ },
+ xAxis : [
+ {
+ type : 'category',
+ boundaryGap : false
+ }
+ ],
+ yAxis : [
+ {
+ type : 'value'
+ }
+ ],
+ series : [
+ ]
+ };
+ $.extend(true, defaultOption, opt);
+ chartOption = defaultOption;
+ }
+}
diff --git a/src/app/routes/reports/query/query.component.ts b/src/app/routes/reports/query/query.component.ts
index 6a3e980..923a8c7 100644
--- a/src/app/routes/reports/query/query.component.ts
+++ b/src/app/routes/reports/query/query.component.ts
@@ -625,7 +625,7 @@
// if ( this.chartSelectedIndex < this.grid.data.length ) {
// series = [{type: 'line', data: this.grid.data[this.chartSelectedIndex]}];
// }
-
+ debugger;
this.initOpton({ xAxis : [{data : timeList}]});
this.chartLoading = true;
}
diff --git a/src/app/routes/routes-routing.module.ts b/src/app/routes/routes-routing.module.ts
index f4719f0..ae052a2 100644
--- a/src/app/routes/routes-routing.module.ts
+++ b/src/app/routes/routes-routing.module.ts
@@ -19,7 +19,11 @@
path: '',
component: LayoutDefaultComponent,
children: [
- { path: '', redirectTo: 'dashboard/workplace', pathMatch: 'full' },
+ { path: "", redirectTo: "home-page", pathMatch: "full" },
+ {
+ path: "home-page",
+ loadChildren: "./home-page/home-page.module#HomePageModule"
+ },
{ path: 'dashboard', redirectTo: 'dashboard/v1', pathMatch: 'full' },
{ path: 'dashboard/v1', component: DashboardV1Component, data: { translate: 'dashboard_v1' } },
{ path: 'dashboard/analysis', component: DashboardAnalysisComponent, data: { translate: 'dashboard_analysis' } },
diff --git a/src/environments/environment.hmr.ts b/src/environments/environment.hmr.ts
index cdf064e..23a52db 100644
--- a/src/environments/environment.hmr.ts
+++ b/src/environments/environment.hmr.ts
@@ -4,5 +4,5 @@
production: false,
hmr: true,
useHash: true,
- SERVER_BASH_URL: `http://47.96.171.62:8080/screen_api_v2/`
+ SERVER_BASH_URL: `http://monitor-api2.7drlb.com/`
};
diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts
index 7e3be56..a43819d 100644
--- a/src/environments/environment.prod.ts
+++ b/src/environments/environment.prod.ts
@@ -4,5 +4,5 @@
production: true,
hmr: false,
useHash: true,
- SERVER_BASH_URL:`http://47.96.15.25:8080/screen_api_v2/`
+ SERVER_BASH_URL: `http://monitor-api2.7drlb.com/`
};
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
index 6163163..0fc0b3c 100644
--- a/src/environments/environment.ts
+++ b/src/environments/environment.ts
@@ -9,5 +9,5 @@
production: false,
hmr: false,
useHash: true,
- SERVER_BASH_URL: `http://47.96.171.62:8080/screen_api_v2/`
+ SERVER_BASH_URL: `http://127.0.0.1:8080/`
};
diff --git a/yarn.lock b/yarn.lock
index bd91a1a..839675a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -240,6 +240,10 @@
version "0.6.6"
resolved "https://registry.yarnpkg.com/@delon/cli/-/cli-0.6.6.tgz#0e17ac163c12a2f6c73ac32f5bf919624b31b33f"
+"@delon/mock@^0.6.6":
+ version "0.6.9"
+ resolved "http://registry.npm.taobao.org/@delon/mock/download/@delon/mock-0.6.9.tgz#424de74de5d95c9dc9a3492512eae218534e0b4f"
+
"@delon/theme@0.6.6":
version "0.6.6"
resolved "https://registry.yarnpkg.com/@delon/theme/-/theme-0.6.6.tgz#de3439d709bdc3bac312f3f21b4a09d9ccc25467"
--
Gitblit v1.8.0