Commit f58afd78 authored by van.chen's avatar van.chen

init

parent d22ed590
......@@ -8,7 +8,13 @@
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
"schematics": {},
"schematics": {
"@schematics/angular:component": {
"inlineStyle": true,
"styleext": "scss",
"spec": false
}
},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
......@@ -28,7 +34,8 @@
"src/assets"
],
"styles": [
"src/styles.css",
"src/styles.scss",
"src/assets/iconfont/iconfont.css",
"node_modules/ng-zorro-antd/ng-zorro-antd.min.css"
],
"scripts": [
......@@ -88,7 +95,8 @@
"tsConfig": "src/tsconfig.spec.json",
"karmaConfig": "src/karma.conf.js",
"styles": [
"src/styles.css",
"src/styles.scss",
"src/assets/iconfont/iconfont.css",
"node_modules/ng-zorro-antd/ng-zorro-antd.min.css"
],
"scripts": [
......
import { Component } from '@angular/core';
import { Component, OnInit } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import {zh_CN, en_US, NzI18nService} from 'ng-zorro-antd';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'witiumCloud2';
export class AppComponent implements OnInit {
constructor(private translateService: TranslateService, private nzI18nService: NzI18nService) {}
ngOnInit() {
// --- set i18n begin ---
this.translateService.addLangs(['zh', 'en', 'jpn']);
const lan = localStorage.getItem('default_language');
if (lan) {
this.translateService.setDefaultLang(lan);
this.translateService.use(lan);
if (lan === 'zh') {
this.nzI18nService.setLocale(zh_CN);
} else {
this.nzI18nService.setLocale(en_US);
}
} else {
this.translateService.setDefaultLang('zh');
this.translateService.use('zh');
this.nzI18nService.setLocale(zh_CN);
}
// --- set i18n end ---
}
}
......@@ -2,6 +2,7 @@ import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {RoutingModule} from './router.module';
import {NgZorroAntdModule} from 'ng-zorro-antd';
import {FormsModule} from '@angular/forms';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {HttpClientModule, HttpClient} from '@angular/common/http';
......@@ -11,6 +12,7 @@ import {NgxEchartsModule} from 'ngx-echarts';
import {LayoutModule} from './layout/layout.module';
// 主组件注册
import {AppComponent} from './app.component';
import {LoadingComponent} from './component/loading/loading.component';
// 国际化相关内容
import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';
......@@ -18,10 +20,10 @@ import {TranslateHttpLoader} from '@ngx-translate/http-loader';
import {HTTP_INTERCEPTORS} from '@angular/common/http';
export function createTranslateHttpLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
return new TranslateHttpLoader(http, '../assets/i18n/', '.json');
}
// 配置 angular i18n
// 配置 angular i18n
import {registerLocaleData} from '@angular/common';
import zh from '@angular/common/locales/zh';
......@@ -41,9 +43,11 @@ import {CheckService} from './service/check';
@NgModule({
declarations: [
AppComponent,
LoadingComponent
],
imports: [
BrowserModule,
FormsModule,
NgxEchartsModule,
LayoutModule,
BrowserAnimationsModule,
......
<div class="searchItem" [ngClass]="{'inModal': inModal}">
<div class="item-label">{{label}}</div>
<div class="item-input">
<nz-date-picker *ngIf="!readonly" [(ngModel)]="date" nzPlaceHolder="" [nzShowTime]="showTime" [nzStyle]="{'width': '100%'}" style="width: 100%" (ngModelChange)="onChange()"></nz-date-picker>
<span *ngIf="readonly">{{date | date: 'yyyy-MM-dd HH:mm:ss'}}</span>
</div>
</div>
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
@Component({
selector: 'app-search-date',
templateUrl: './search-date.component.html'
})
export class SearchDateComponent implements OnInit {
@Input() label: any;
_value: any;
date: any;
@Input()
get value(): any {
return this._value;
}
set value(_value: any) {
this.initDate(_value);
}
@Input() showTime: any = false;
@Input() inModal: any = false;
@Input() readonly: any = false;
@Output() valueChange = new EventEmitter();
constructor() { }
ngOnInit() {
}
initDate(date) {
date = Number(date);
if (!isNaN(date)) {
this.date = new Date(date);
} else {
this.date = '';
}
}
onChange() {
const value = new Date(this.date).getTime();
this.valueChange.emit(value);
}
}
<div class="searchItem" [ngClass]="{'inModal': inModal}">
<div class="item-label">{{label}}</div>
<div class="item-input">
<input *ngIf="!readonly" nz-input [type]="type" [(ngModel)]="value" [maxlength]="maxlength" (ngModelChange)="onChange()">
<span *ngIf="readonly">{{value}}</span>
</div>
</div>
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
@Component({
selector: 'app-search-item',
templateUrl: './search-item.component.html'
})
export class SearchItemComponent implements OnInit {
@Input() label: any;
@Input() value: any;
@Input() type: any = 'text';
@Input() inModal: any = false;
@Input() readonly: any = false;
@Input() maxlength: any = 200;
@Output() valueChange = new EventEmitter();
constructor() {}
ngOnInit() {}
onChange() {
this.valueChange.emit(this.value);
}
}
<div class="searchItem" [ngClass]="{'inModal': inModal}">
<div class="item-label">{{label}}</div>
<div class="item-input">
<nz-select *ngIf="!readonly" [(ngModel)]="value" [nzNoAnimation]="true" style="width: 100%;" [nzMode]="nzMode" (ngModelChange)="onChange()">
<nz-option *ngFor="let one of data" [nzLabel]="one[optL]" [nzValue]="one[optV]"></nz-option>
</nz-select>
<span *ngIf="readonly">{{value}}</span>
</div>
</div>
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
@Component({
selector: 'app-search-select',
templateUrl: './search-select.component.html'
})
export class SearchSelectComponent implements OnInit {
@Input() label: any;
@Input() value: any;
@Input() optL: any = 'label';
@Input() optV: any = 'value';
@Input() nzMode: any = 'default';
@Input() inModal: any = false;
@Input() readonly: any = false;
@Input() data: any = [];
@Output() valueChange = new EventEmitter();
constructor() { }
ngOnInit() {
}
onChange() {
this.valueChange.emit(this.value);
}
}
.transfer-main {
display: inline-flex;
}
.transfer-left {
margin-right: 10px;
}
.transfer-right {
margin-left: 10px;
}
.transfer-item {
line-height: 30px;
text-indent: 15px;
}
.transfer-item:hover,.transfer-item:active,.transfer-item:visited,.transfer-item:focus {
background-color: #1890ff;
opacity: 0.5;
color: #ffffff;
}
.transfer-con {
display: inline-block;
overflow-x: hidden;
overflow-y: auto;
width: 100%;
}
.transfer-part {
width: calc(50% - 10px);
height: calc(100% - 2px);
overflow: hidden;
display: inline-block;
border: 1px solid #cccccc;
border-radius: 5px;
}
.transfer-input {
width: calc(100% - 40px);
border: 1px solid #ccc;
height: 30px;
box-shadow: none;
padding: 0 10px;
padding-right: 28px;
outline: none !important;
}
.transfer-title {
margin: -1px -1px 0 -1px;
position: relative;
}
.transfer-search {
font-size: 16px;
position: absolute;
z-index: 9;
right: 0;
width: 30px;
height: 30px;
text-align: center;
top: 35px;
color: rgba(0,0,0,.25);
}
.transfer-none {
text-align: center;
margin-top: 40%;
font-size: 16px;
color: #cccccc;
}
.right {
float: right;
}
.transfer-head {
height: 30px;
padding: 0 10px;
font-weight: 600;
line-height: 30px;
margin: -1px;
border: 1px solid #ccc;
}
<div class="transfer-main" [ngStyle]="transferStyle">
<div class="transfer-part transfer-left">
<div class="transfer-title">
<div class="transfer-head">{{'waitForSelect' | translate}}<span class="right editSpan" (click)="checkAll()">{{'allSelected' | translate}}</span></div>
<input class="transfer-input" [(ngModel)]="searchLeftKey" [placeholder]="'pleaseFillInKeyword' | translate">
<span class="transfer-search" (click)="searchLeft()"><i nz-icon type="search"></i></span>
</div>
<div id="transfer-left" class="transfer-con" style="height: calc(100% - 62px);">
<div class="transfer-item" *ngFor="let one of left,let i = index" (click)="moveToRight(i, one)">{{one[label]}}</div>
<div *ngIf="isloading" style="text-align: center;padding-top: 10px;">
<nz-spin [nzTip]="('loading' | translate) + '...'"></nz-spin>
</div>
<div class="transfer-none" *ngIf="left.length === 0">{{'noData' | translate}}</div>
</div>
</div>
<div class="transfer-part transfer-right">
<div class="transfer-title">
<div class="transfer-head">{{'selected' | translate}}<span class="right editSpan" (click)="checkNone()">{{'allCleanUp' | translate}}</span></div>
</div>
<div id="transfer-right" class="transfer-con" style="height: calc(100% - 30px);">
<div class="transfer-item" *ngFor="let one of right,let i = index" (click)="moveToLeft(i, one)">{{one[label]}}</div>
<div class="transfer-none" *ngIf="right.length === 0">{{'noData' | translate}}</div></div>
</div>
</div>
import { Component, OnInit, AfterViewInit, Input, Output, EventEmitter } from '@angular/core';
@Component({
selector: 'app-transfer',
templateUrl: './transfer.component.html',
styleUrls: ['./transfer.component.css']
})
export class TransferComponent implements OnInit, AfterViewInit {
left: any = [];
right: any = [];
listData = [];
searchLeftKey = '';
isloading = false;
_list: any = [];
constructor() {}
@Input()
transferStyle: any = {'width': '450px', 'height': '300px'};
@Input()
label = 'title';
@Input()
get list(): any {
return this._list;
}
set list(_list: any) {
this.listData = _list;
this.initTransfer();
}
ngOnInit() {
}
ngAfterViewInit() {
this.initTransfer();
}
initTransfer() {
this.searchLeftKey = '';
const list = this.listData, left = [], right = [];
if (list.length === 0) {
this.left = left;
this.right = right;
}
list.map((item, index) => {
if (!item.direction || item.direction === 'left') {
if (left.length < 100) {
left.push(item);
}
} else {
right.push(item);
}
if (index === list.length - 1) {
this.left = left;
this.right = right;
setTimeout(() => {
this.addMore();
}, 1);
}
});
}
addMore() {
const left = document.getElementById('transfer-left');
left.scrollTop = 0;
let flag = 0;
left.onscroll = () => {
if (left.scrollTop > left.scrollHeight - 400 && flag === 0 ) {
this.isloading = true;
flag = 1;
setTimeout(() => {
const leftObj = {...this.left};
const str = JSON.stringify(this.right);
const list = this.listData.filter((item) => str.indexOf('"' + this.label + '":"' + item[this.label] + '"') <= -1);
this.left = leftObj.concat(list.filter((item) => item[this.label].indexOf(this.searchLeftKey) > -1).filter((item, index) => index >= this.left.length && index < this.left.length + 100));
this.isloading = false;
flag = 0;
}, 2000);
}
};
}
moveToLeft(i, one) {
this.right.splice(i, 1);
this.left.push(one);
}
moveToRight(i, one) {
this.left.splice(i, 1);
this.right.push(one);
}
searchLeft() {
const str = JSON.stringify(this.right);
let list = this.listData.filter((item) => str.indexOf('"' + this.label + '":"' + item[this.label] + '"') <= -1);
list = list.filter((item) => item[this.label].indexOf(this.searchLeftKey) > -1).filter((item, index) => index < 100);
this.left = list;
}
getSelected() {
return this.right;
}
checkNone() {
this.right = [];
this.searchLeft();
}
checkAll() {
this.right = Array.from(new Set(this.right.concat(this.left)));
this.searchLeft();
}
}
......@@ -34,10 +34,9 @@ export class LoginComponent implements OnInit {
userName: this.req.userName,
password: this.req.password
};
this.api.login.dologin([req, (data: any) => {
this.api.login.loginForToken([req, (data: any) => {
if (data.constructor === Object) {
if (data.code === 1) {
debugger;
window.sessionStorage.setItem('_AMap_AMap.MapInner', data.message);
this.router.navigate(['app/home']);
// this.getCurUser();
......
......@@ -11,12 +11,12 @@
<app-leftmenu #leftmenu [isCollapsed]="isCollapsed" [selectedItem]="selectedItem"></app-leftmenu>
</nz-sider>
<nz-layout>
<nz-header class="logoBackground bottomLine" style="padding:0;position:fixed; width:100%;z-index: 99;">
<nz-header class="logoBackground bottomLine" style="padding:0;position:fixed; width:100%;z-index: 99;border-bottom: 1px solid rgb(230, 230, 230);">
<i class="iconfont trigger textStyle1 whenHover" [class.icon-toFold]="!isCollapsed"
[class.icon-toOpen]="isCollapsed" (click)="changeCollapsed()"></i>
<label class="linkToPersonSetting whenHover textStyle1" routerLink="/app/systemSet/personSet">
<label class="linkToPersonSetting whenHover textStyle1" routerLink="/app/system/person">
<i class="iconfont icon-user"></i>
{{'personSet' | translate}}
{{'person' | translate}}
</label>
<label class="loginOut whenHover textStyle1" (click)="loginOut()">
{{'signOut' | translate}}
......
......@@ -10,6 +10,7 @@ $headerSlideBackground: rgba(255, 255, 255, 1);
:host ::ng-deep .logo {
text-align: center;
border-bottom: 1px solid rgb(230, 230, 230);
}
.logoBackground {
......@@ -32,7 +33,6 @@ $headerSlideBackground: rgba(255, 255, 255, 1);
z-index: 5;
position: fixed;
padding: 5px;
border-right: 1px solid #e6e6e6;
}
ul {
......@@ -43,9 +43,9 @@ ul {
}
.width-200{
width: 200px;
width: 199px;
}
.width-80{
width: 80px;
width: 79px;
}
......@@ -11,6 +11,17 @@ import {FooterComponent} from './footer/footer.component';
import {BreadcrumbComponent} from './breadcrumb/breadcrumb.component';
import {HomeComponent} from '../main/home/home.component';
import {LayoutRoutingModule} from '../router.module';
import {PersonComponent} from '../main/person/person.component';
import {RoleComponent} from '../main/role/role.component';
import {UserComponent} from '../main/user/user.component';
import {OperateComponent} from '../main/operate/operate.component';
import {LogComponent} from '../main/log/log.component';
// 通用组件
import {SearchDateComponent} from '../component/search-date/search-date.component';
import {SearchItemComponent} from '../component/search-item/search-item.component';
import {SearchSelectComponent} from '../component/search-select/search-select.component';
import {TransferComponent} from '../component/transfer/transfer.component';
@NgModule({
imports: [
TranslateModule,
......@@ -36,7 +47,16 @@ import {LayoutRoutingModule} from '../router.module';
LeftmenuComponent,
FooterComponent,
BreadcrumbComponent,
HomeComponent
HomeComponent,
PersonComponent,
UserComponent,
RoleComponent,
LogComponent,
OperateComponent,
SearchDateComponent,
SearchItemComponent,
SearchSelectComponent,
TransferComponent
]
})
export class LayoutModule {
......
......@@ -29,41 +29,10 @@ export class LeftmenuComponent implements OnInit, OnDestroy {
type: 1,
child: []
}, {
name: 'dataManage',
icon: 'iconfont icon-data',
type: 0,
// {name: 'actualData'}, {name: 'compare'}
child: []
}, {
name: 'pointAnalyse',
icon: 'iconfont icon-alarmUp',
type: 0,
child: []
}, {
name: 'alarmWarn',
icon: 'iconfont icon-warn',
type: 0,
// {name: 'warnInfo'}, {name: 'alarmInfo'}
child: []
}, {
name: 'deviceManage',
icon: 'iconfont icon-device',
type: 0,
// {name: 'gatewayManage'}, {name: 'collectorManage'}, {name: 'deviceModel'}, {name: 'deviceType'}
child: []
// }, {
// name: 'moduleCenter',
// icon: 'iconfont icon-edit',
// type: 0,
// child: [{name: 'moduleManage'}, {name: 'partManage'}, {name: 'channelTopic'}, {name: 'subjectManage'}]
}, {
name: 'systemSet',
name: 'system',
icon: 'iconfont icon-setting',
type: 0,
child: [{name: 'personSet'}, {name: 'roleManage'}, {name: 'areaManage'},
{name: 'departmentManage'}, {name: 'pointManage'}, {name: 'factoryManage'},
{name: 'userManage'}, {name: 'operateSet'}, {name: 'loginLog'}]
// child: []
child: [{name: 'person'}, {name: 'role'}, {name: 'user'}, {name: 'operate'}, {name: 'log'}]
}];
isOpen = {monitoring: false, deviceManage: false, pileManage: false, moduleCenter: false, systemSet: false};
isSelected = ['', ''];
......
<div class="searchBar" @fade>
<app-search-date [label]="'startTime' | translate" [(value)]="req.startTime" showTime="true"></app-search-date>
<app-search-date [label]="'endTime' | translate" [(value)]="req.endTime" showTime="true"></app-search-date>
<div class="btnLine">
<button nz-button [nzType]="'primary'" [nzLoading]="isLoading" (click)="onSearch()"><span>{{'search' | translate}}</span></button>
<button nz-button class="btnAll" [nzLoading]="isLoading" (click)="onGetAll()"><span>{{'allData' | translate}}</span></button>
</div>
</div>
<div class="tableBar" @fade>
<nz-table #nzTable
[nzData]="data"
[nzSize]="'middle'"
nzShowSizeChanger
[nzShowPagination]="true"
[nzLoading]="isLoading"
[nzFrontPagination]="false"
[nzTotal]="total"
[(nzPageIndex)]="page"
[(nzPageSize)]="rows"
(nzPageIndexChange)="searchData()"
(nzPageSizeChange)="searchData()">
<thead nz-thead>
<tr>
<th nz-th><span>{{'num' | translate}}</span></th>
<th nz-th><span>{{'loginName' | translate}}</span></th>
<th nz-th><span>{{'userRealName' | translate}}</span></th>
<th nz-th><span>{{'loginTime' | translate}}</span></th>
<th nz-th><span>{{'loginWay' | translate}}</span></th>
<th nz-th><span>{{'loginInfo' | translate}}</span></th>
</tr>
</thead>
<tbody nz-tbody>
<tr *ngFor="let one of nzTable.data, let i = index">
<td nz-td>{{i + 1}}</td>
<td nz-td>{{one.userName}}</td>
<td nz-td>{{one.realName}}</td>
<td nz-td>{{one.loginTime | date : 'yyyy-MM-dd HH:mm:ss'}}</td>
<td nz-td>{{'webPlatform' | translate}}</td>
<td nz-td>{{one.ipAddress}}</td>
</tr>
</tbody>
</nz-table>
</div>
import { Component, OnInit } from '@angular/core';
import {ApiService} from '../../service/api';
import {NzMessageService} from 'ng-zorro-antd';
import {TranslateService} from '@ngx-translate/core';
import {fadeIn} from '../../animation/fade-in';
@Component({
selector: 'app-log',
templateUrl: './log.component.html',
styles: [],
animations: [fadeIn]
})
export class LogComponent implements OnInit {
req: any = {};
data = [];
isLoading = false;
page: any = 1;
rows: any = 10;
total: any;
constructor(private api: ApiService, private message: NzMessageService, private translate: TranslateService) {
}
ngOnInit() {
this.getData();
}
getData() {
this.isLoading = true;
this.api.loginlog.getAll(this.page, this.rows, ['', this.next]);
}
onSearch() {
this.page = 1;
this.query();
}
query() {
this.isLoading = true;
const req = {
startTime: this.req.startTime ? new Date(this.req.startTime).getTime() : '',
endTime: this.req.endTime ? new Date(this.req.endTime).getTime() : ''
};
this.api.loginlog.getByTime(this.page, this.rows, [req, this.next]);
}
onGetAll() {
this.page = 1;
this.req = {};
this.getData();
}
next = (data) => {
if ( data && data.rows && data.rows.constructor === Array) {
this.data = data.rows;
this.total = data.total;
} else {
this.message.error(data.message || this.translate.instant('wrongToGetData'));
}
this.isLoading = false;
}
searchData() {
if (this.req.startTime || this.req.endTime) {
this.query();
} else {
this.getData();
}
}
}
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-operate',
templateUrl: './operate.component.html',
styles: []
})
export class OperateComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-person',
templateUrl: './person.component.html',
styles: []
})
export class PersonComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
<!--<div class="searchBar" @fade>-->
<!--<div class="btnLine">-->
<button nz-button [nzType]="'primary'" [nzLoading]="isLoading" (click)="add()"><span>{{'add' | translate}}</span></button>
<!--<button nz-button class="btnAll" [nzLoading]="isLoading" (click)="onGetAll()"><span>{{'allData' | translate}}</span></button>-->
<!--</div>-->
<!--</div>-->
<div class="tableBar" @fade>
<nz-table #nzTable
[nzData]="data"
[nzLoading]="isLoading">
<thead nz-thead>
<tr>
<th nz-th><span>{{'num' | translate}}</span></th>
<th nz-th><span>{{'roleNo' | translate}}</span></th>
<th nz-th><span>{{'roleName' | translate}}</span></th>
<th nz-th><span>{{'companyName' | translate}}</span></th>
<th nz-th><span>{{'remark' | translate}}</span></th>
<th nz-th><span>{{'oper' | translate}}</span></th>
</tr>
</thead>
<tbody nz-tbody>
<tr *ngFor="let one of nzTable.data,let i = index">
<td nz-td>{{i + 1}}</td>
<td nz-td>{{one.roleNo}}</td>
<td nz-td>{{one.roleName}}</td>
<td nz-td>{{one.companyName}}</td>
<td nz-td>{{one.remark}}</td>
<td nz-td>
<span class="editSpan" (click)="edit(one)">{{'edit' | translate}}</span>
<nz-divider nzType="vertical"></nz-divider>
<span class="deleteFontColor" (click)="deleteConfirm(one.roleNo)">{{'delete' | translate}}</span>
</td>
</tr>
</tbody>
</nz-table>
</div>
<nz-modal [(nzVisible)]="isVisible" [nzTitle]="(isUpdate ? 'editRole' : 'addRole') | translate" [nzContent]="modalContent" nzWidth="500"
[nzFooter]="modalFooter" (nzOnCancel)="cancel()" nzMaskClosable="false">
<ng-template #modalContent>
<app-search-item [(value)]="req.roleName" [label]="'roleName' | translate" inModal="true"></app-search-item>
<app-search-item [(value)]="req.description" [label]="'description' | translate" inModal="true"></app-search-item>
<div class="searchItem inModal">
<div class="item-label">选择权限</div>
<div class="item-input">
<nz-tree #tree
[nzData]="nodes"
nzCheckable
nzMultiple
[nzCheckedKeys]="defaultCheckedKeys"
[nzExpandedKeys]="defaultExpandedKeys"
>
</nz-tree>
</div>
</div>
<app-search-item [(value)]="req.remark" [label]="'remark' | translate" inModal="true"></app-search-item>
</ng-template>
<ng-template #modalFooter>
<button nz-button nzType="default" [nzLoading]="isLoading" (click)="cancel()"><span>{{'cancel' | translate}}</span></button>
<button nz-button nzType="primary" [nzLoading]="isLoading" (click)="save()"><span>{{'confirm' | translate}}</span></button>
</ng-template>
</nz-modal>
import {Component, OnInit, ViewChild} from '@angular/core';
import {ApiService} from '../../service/api';
import {CheckService} from '../../service/check';
import {NzMessageService, NzModalService} from 'ng-zorro-antd';
import {TranslateService} from '@ngx-translate/core';
import {fadeIn} from '../../animation/fade-in';
@Component({
selector: 'app-role',
templateUrl: './role.component.html',
animations: [fadeIn],
styles: []
})
export class RoleComponent implements OnInit {
@ViewChild('tree') tree: any;
req: any = {};
data: any = [];
isLoading = false;
isVisible = false;
isUpdate = false;
userName = '';
permissions = [];
defaultCheckedKeys = [];
defaultExpandedKeys = [];
nodes = [];
constructor(private api: ApiService, private message: NzMessageService, private translate: TranslateService,
private modalService: NzModalService, private ck: CheckService) {
}
ngOnInit() {
this.init();
}
init() {
this.getData();
this.getPermissions();
}
next = (data) => {
if (data && data.constructor === Array) {
this.data = data;
} else if (data && data.code === 1) {
this.message.success(data.message ? data.message : '操作成功');
this.isVisible = false;
} else if (data && data.code === 0) {
this.message.error(data.message ? data.message : '操作失败');
} else {
this.message.error(data && data.message ? data.message : '获取数据失败');
}
this.isLoading = false;
}
getData() {
this.isLoading = true;
this.api.role.getAll(['', this.next]);
}
getPermissions() {
this.isLoading = true;
this.api.permission.getAll(['', (data) => {
if (data.constructor === Array) {
this.permissions = data;
} else {
this.message.error(data && data.message ? data.message : '获取数据失败');
}
this.isLoading = false;
}]);
}
initPermissions(data) {
const obj = [];
if (data && data.constructor === Array && data.length > 0) {
data.map((one, i) => {
obj[i] = {
title: one.parentSidebarName,
key: one.parentSidebarName,
selectable: false,
children: []
};
if (one.sidebarVos.length > 0) {
one.sidebarVos.map((two, j) => {
obj[i].children[j] = {
title: two.sidebarName,
key: two.sidebarName,
selectable: false,
children: [],
isLeaf: two.permissionShowVos.length === 0
};
if (two.permissionShowVos.length > 0) {
two.permissionShowVos.map((three, k) => {
obj[i].children[j].children[k] = {
title: three.permissionName,
key: three.permissionName,
selectable: false,
isLeaf: true
};
});
}
});
}
});
this.nodes = obj;
}
}
add() {
this.req = {};
this.isUpdate = false;
this.initPermissions([...this.permissions]);
this.isVisible = true;
}
edit(one) {
this.isUpdate = true;
this.req = {...one};
this.api.permission.getPermissionByRoleNo([{roleNo: one.roleNo}, (data) => {
this.initPermissions(data);
this.isVisible = true;
}]);
}
cancel() {
this.isVisible = false;
}
save() {
this.isLoading = true;
this.req.permissions = this.getSelected();
if (this.isUpdate) {
this.api.role.updateRole([this.req, this.next]);
} else {
this.api.role.addRole([this.req, this.next]);
}
}
getSelected() {
const nodes = this.tree.getTreeNodes();
const obj = [];
if (nodes.length > 0) {
nodes.map((one) => {
if (one.children.length > 0) {
one.children.map((two) => {
if (two.children.length === 0 && two.isChecked) {
obj.push(two.key);
} else if (two.children.length > 0) {
two.children.map((three) => {
if (three.isChecked) {
obj.push(three.key);
}
});
}
});
} else if (one.isChecked) {
obj.push(one.key);
}
});
return obj;
}
}
deleteConfirm(one) {
this.modalService.confirm({
nzTitle : '<i></i>',
nzContent: '<b>' + this.translate.instant('confirmDeleteThisRecord') + '</b>',
nzOnOk : () => this.delete(one)
});
}
delete(one) {
this.api.role.deleteRole([{roleNo: one}, this.next]);
}
}
<div class="searchBar" @fade>
<app-search-item [label]="'userName' | translate" [(value)]="userName"></app-search-item>
<div class="btnLine">
<button nz-button [nzType]="'primary'" [nzLoading]="isLoading" (click)="onSearch()"><span>{{'search' | translate}}</span></button>
<button nz-button class="btnAll" [nzLoading]="isLoading" (click)="onGetAll()"><span>{{'allData' | translate}}</span></button>
<button nz-button class="btnAdd" [nzLoading]="isLoading" (click)="add()"><span>{{'add' | translate}}</span></button>
</div>
</div>
<div class="tableBar" @fade>
<nz-table #nzTable
[nzData]="data"
[nzLoading]="isLoading">
<thead nz-thead>
<tr>
<th nz-th><span>{{'num' | translate}}</span></th>
<th nz-th><span>{{'userNo' | translate}}</span></th>
<th nz-th><span>{{'userRealName' | translate}}</span></th>
<th nz-th><span>{{'userName' | translate}}</span></th>
<th nz-th><span>{{'nickName' | translate}}</span></th>
<th nz-th><span>{{'email' | translate}}</span></th>
<th nz-th><span>{{'phone' | translate}}</span></th>
<th nz-th><span>{{'userRole' | translate}}</span></th>
<th nz-th><span>{{'oper' | translate}}</span></th>
</tr>
</thead>
<tbody nz-tbody>
<tr *ngFor="let one of nzTable.data,let i = index">
<td nz-td>{{i + 1}}</td>
<td nz-td>{{one.userNo}}</td>
<td nz-td>{{one.realName}}</td>
<td nz-td>{{one.userName}}</td>
<td nz-td>{{one.nickName}}</td>
<td nz-td>{{one.email}}</td>
<td nz-td>{{one.phone}}</td>
<td nz-td>{{one.roleName}}</td>
<td nz-td>
<span class="editSpan" (click)="edit(one)">{{'edit' | translate}}</span>
<nz-divider nzType="vertical"></nz-divider>
<span class="deleteFontColor" (click)="deleteConfirm(one.userNo)">{{'delete' | translate}}</span>
</td>
</tr>
</tbody>
</nz-table>
</div>
<nz-modal [(nzVisible)]="isVisible" [nzTitle]="(isUpdate ? 'editUser' : 'addUser') | translate" [nzContent]="modalContent" nzWidth="500"
[nzFooter]="modalFooter" (nzOnCancel)="cancel()" nzMaskClosable="false">
<ng-template #modalContent>
<app-search-item [(value)]="req.userName" [label]="'nickName' | translate" inModal="true"></app-search-item>
<app-search-item [(value)]="req.realName" [label]="'userRealName' | translate" inModal="true"></app-search-item>
<app-search-item [(value)]="req.nickName" [label]="'loginName' | translate" inModal="true"></app-search-item>
<app-search-select [(value)]="req.companyNo" [label]="'selectCompany' | translate" optL="companyName"
[data]="companys" inModal="true" optV="companyNo"></app-search-select>
<app-search-select [(value)]="req.roleNo" [label]="'selectRole' | translate" optL="roleName"
[data]="roles" inModal="true" optV="roleNo"></app-search-select>
<app-search-item [(value)]="req.password" type="password" *ngIf="!isUpdate"
[label]="'loginPassword' | translate" inModal="true"></app-search-item>
<app-search-item [(value)]="req.phone" [label]="'userPhone' | translate" inModal="true" [maxlength]="11"></app-search-item>
<app-search-item [(value)]="req.email" [label]="'userEmail' | translate" inModal="true"></app-search-item>
<app-search-item [(value)]="req.img" [label]="'userImg' | translate" inModal="true"></app-search-item>
<app-search-item [(value)]="req.remark" [label]="'remark' | translate" inModal="true"></app-search-item>
</ng-template>
<ng-template #modalFooter>
<button nz-button nzType="default" [nzLoading]="isLoading" (click)="cancel()"><span>{{'cancel' | translate}}</span></button>
<button nz-button nzType="primary" [nzLoading]="isLoading" (click)="save()"><span>{{'confirm' | translate}}</span></button>
</ng-template>
</nz-modal>
import {Component, OnInit} from '@angular/core';
import {ApiService} from '../../service/api';
import {CheckService} from '../../service/check';
import {NzMessageService, NzModalService} from 'ng-zorro-antd';
import {TranslateService} from '@ngx-translate/core';
import {fadeIn} from '../../animation/fade-in';
@Component({
selector: 'app-user',
templateUrl: './user.component.html',
animations: [fadeIn],
styles: [`
:host::ng-deep .cdk-overlay-pane {
height: 300px;
overflow-y: auto;
}
`]
})
export class UserComponent implements OnInit {
req: any = {};
data: any = [];
isLoading = false;
isVisible = false;
isUpdate = false;
userName = '';
companys = [];
roles = [];
constructor(private api: ApiService, private message: NzMessageService, private translate: TranslateService,
private modalService: NzModalService, private ck: CheckService) {
}
ngOnInit() {
this.init();
}
init() {
this.getData();
this.getCompanys();
this.getRoles();
}
getCompanys() {
this.isLoading = true;
this.api.company.getAll(['', (data) => {
if (data.constructor === Array) {
this.companys = data;
} else {
this.message.error(data && data.message ? data.message : '获取数据失败');
}
this.isLoading = false;
}]);
}
getRoles() {
this.isLoading = true;
this.api.role.getAll(['', (data) => {
if (data.constructor === Array) {
this.roles = data;
} else {
this.message.error(data && data.message ? data.message : '获取数据失败');
}
this.isLoading = false;
}]);
}
next = (data) => {
if (data && data.constructor === Array) {
this.data = data;
} else if (data && data.code === 1) {
this.message.success(data.message ? data.message : '操作成功');
this.init();
this.isVisible = false;
} else if (data && data.code === 0) {
this.message.error(data.message ? data.message : '操作失败');
} else {
this.message.error(data && data.message ? data.message : '获取数据失败');
}
this.isLoading = false;
}
getData() {
this.isLoading = true;
this.api.user.getAll(['', this.next]);
}
onSearch() {
this.isLoading = true;
this.api.user.getByUserNameForLike([{userName: this.userName}, this.next]);
}
onGetAll() {
this.userName = '';
this.getData();
}
add() {
this.isUpdate = false;
this.req = {};
this.isVisible = true;
}
edit(one) {
this.isUpdate = true;
this.req = {...one};
this.isVisible = true;
}
save() {
this.isLoading = true;
if (this.isUpdate) {
this.api.user.updateUser([this.req, this.next]);
} else {
this.api.user.addUser([this.req, this.next]);
}
}
cancel() {
this.isVisible = false;
}
deleteConfirm(one) {
this.modalService.confirm({
nzTitle : '<i></i>',
nzContent: '<b>' + this.translate.instant('confirmDeleteThisRecord') + '</b>',
nzOnOk : () => this.delete(one)
});
}
delete(one) {
this.api.user.deleteUser([{userNo: one}, this.next]);
}
}
......@@ -2,6 +2,11 @@ import { RouterModule, Routes } from '@angular/router';
import { LayoutComponent } from './layout/layout.component';
import { AuthService } from './service/auth';
import { HomeComponent } from './main/home/home.component';
import {LogComponent} from './main/log/log.component';
import {OperateComponent} from './main/operate/operate.component';
import {PersonComponent} from './main/person/person.component';
import {RoleComponent} from './main/role/role.component';
import {UserComponent} from './main/user/user.component';
const AppRoutes: Routes = [
{path: '', redirectTo: '/extra/login', pathMatch: 'full'},
......@@ -19,6 +24,11 @@ const routes: Routes = [
children: [
{path: '', redirectTo: '/extra/login', pathMatch: 'full'},
{path: 'home', component: HomeComponent},
{path: 'system/user', component: UserComponent},
{path: 'system/role', component: RoleComponent},
{path: 'system/person', component: PersonComponent},
{path: 'system/operate', component: OperateComponent},
{path: 'system/log', component: LogComponent},
]
}
];
......
......@@ -16,262 +16,57 @@ export class ApiService {
public imgUrl = environment.imgUrl; // 前端地址
public homePage = {
homePage: (data) => this.trans('post', '/homePage/homePage', data)
};
public deviceConfig = {
addTopicConfig: (data) => this.trans('post', '/deviceConfig/addTopicConfig', data),
delTopicConfig: (data) => this.trans('post', '/deviceConfig/delTopicConfig', data),
getAll: (data) => this.trans('post', '/deviceConfig/getAll', data),
};
public analysis = {
getCuttingMachine: (data) => this.trans('get', '/analysis/getCuttingMachine', data),
getCuttingMachineDetail: (data) => this.trans('post', '/analysis/getCuttingMachineDetail', data),
getCuttingMachineDetailForAlarm: (data) => this.trans('post', '/analysis/getCuttingMachineDetailForAlarm', data),
getCuttingMachineDetailForData: (data) => this.trans('post', '/analysis/getCuttingMachineDetailForData', data),
getCuttingMachineDetailForAlarmDetail: (data) => this.trans('post', '/analysis/getCuttingMachineDetailForAlarmDetail', data),
getCuttingMachineDetailForDisposeAlarm: (data) => this.trans('post', '/analysis/getCuttingMachineDetailForDisposeAlarm', data),
getCuttingMachineDetailForKnife: (data) => this.trans('post', '/analysis/getCuttingMachineDetailForKnife', data),
getCuttingMachineForLike: (data) => this.trans('post', '/analysis/getCuttingMachineForLike', data),
getMachineRoom: (data) => this.trans('get', '/analysis/getMachineRoom', data),
getMachineRoomAlarm: (data) => this.trans('post', '/analysis/getMachineRoomAlarm', data),
getMachineRoomAlarmDetail: (data) => this.trans('post', '/analysis/getMachineRoomAlarmDetail', data),
getMachineRoomDetail: (data) => this.trans('post', '/analysis/getMachineRoomDetail', data),
getMachineRoomForLike: (data) => this.trans('post', '/analysis/getMachineRoomForLike', data),
};
public data = {
getCISS: (data) => this.trans('post', '/data/getCISS', data),
getCISSData: (data) => this.trans('get', '/data/getCISSData', data),
getCISSHistoryData: (data) => this.trans('post', '/data/getCISSHistoryData', data),
getCISSNum: (data) => this.trans('post', '/data/getCISSNum', data),
getXDK: (data) => this.trans('post', '/data/getXDK', data),
getXDKData: (data) => this.trans('get', '/data/getXDKData', data),
getXDKHistoryData: (data) => this.trans('post', '/data/getXDKHistoryData', data),
getCISSDataByTerm: (data) => this.trans('post', '/data/getCISSDataByTerm', data),
getXDKDataByTerm: (data) => this.trans('post', '/data/getXDKDataByTerm', data),
getAlarmData: (data) => this.trans('post', '/getAlarmData', data),
getData: (data) => this.trans('post', '/getData', data)
};
public dataComparison = {
getComparisonForKeepCiss: (data) => this.trans('post', '/dataComparison/getComparisonForKeepCiss', data),
getDataComparisonForKeepCiss: (data) => this.trans('post', '/dataComparison/getDataComparisonForKeepCiss', data),
getDataComparisonForStepCiss: (data) => this.trans('post', '/dataComparison/getDataComparisonForStepCiss', data),
getDataComparisonForXDK: (data) => this.trans('post', '/dataComparison/getDataComparisonForXDK', data),
};
public download = {
downloadCissData: (data) => this.trans('post', '/download/downloadCissData', data)
};
public deviceType = {
addDeviceType: (data) => this.trans('post', '/deviceType/addDeviceType', data),
deleteDeviceType: (data) => this.trans('post', '/deviceType/deleteDeviceType', data),
getAll: (data) => this.trans('get', '/deviceType/getAll', data),
getByDeviceTypeForLike: (data) => this.trans('post', '/deviceType/getByDeviceTypeForLike', data),
updateDeviceType: (data) => this.trans('post', '/deviceType/updateDeviceType', data),
};
public deviceModel = {
addDeviceModel: (data) => this.trans('post', '/deviceModel/addDeviceModel', data),
getAll: (data) => this.trans('get', '/deviceModel/getAll', data),
deleteDeviceModel: (data) => this.trans('post', '/deviceModel/deleteDeviceModel', data),
getByDeviceModelForLike: (data) => this.trans('post', '/deviceModel/getByDeviceModelForLike', data),
updateDeviceModel: (data) => this.trans('post', '/deviceModel/updateDeviceModel', data),
};
public alarm = {
addAlarm: (data) => this.trans('post', '/alarm/addAlarm', data),
deleteAlarm: (data) => this.trans('post', '/alarm/deleteAlarm', data),
getAll: (data) => this.trans('get', '/alarm/getAll', data),
getByAlarmNameForLike: (data) => this.trans('post', '/alarm/getByAlarmNameForLike', data),
updateAlarm: (data) => this.trans('post', '/alarm/updateAlarm', data),
};
public alarmLog = {
addAlarmLog: (data) => this.trans('post', '/alarmLog/addAlarmLog', data),
disposeAlarm: (data) => this.trans('post', '/alarmLog/disposeAlarm', data),
downloadExcel: (data) => this.trans('post', '/alarmLog/downloadExcel', data),
getAll: (page, rows, data) => this.trans('get', '/alarmLog/getAll?page=' + page + '&rows=' + rows, data),
getForTerm: (page, rows, data) => this.trans('post', '/alarmLog/getForTerm?page=' + page + '&rows=' + rows, data),
updateFault: (data) => this.trans('post', '/alarmLog/updateFault', data),
};
public area = {
getAll: (data) => this.trans('get', '/getAll', data),
getByCity: (data) => this.trans('post', '/getByCity', data),
};
public factory = {
addFactory: (data) => this.trans('post', '/factory/addFactory', data),
addFactoryDepartment: (data) => this.trans('post', '/factory/addFactoryDepartment', data),
addFactoryLine: (data) => this.trans('post', '/factory/addFactoryLine', data),
deleteFactory: (data) => this.trans('post', '/factory/deleteFactory', data),
getAll: (data) => this.trans('get', '/factory/getAll', data),
getAllForDepartment: (data) => this.trans('get', '/factory/getAllForDepartment', data),
getAllForFactoryArea: (data) => this.trans('get', '/factory/getAllForFactoryArea', data),
getAllForFactoryLine: (data) => this.trans('get', '/factory/getAllForFactoryLine', data),
getDepartmentByFactoryNameForLike: (data) => this.trans('post', '/factory/getDepartmentByFactoryNameForLike', data),
getFactoryAreaByFactoryNameForLike: (data) => this.trans('post', '/factory/getFactoryAreaByFactoryNameForLike', data),
getFactoryLineByFactoryNameForLike: (data) => this.trans('post', '/factory/getFactoryLineByFactoryNameForLike', data),
updateFactoryArea: (data) => this.trans('post', '/factory/updateFactoryArea', data),
updateFactoryLine: (data) => this.trans('post', '/factory/updateFactoryLine', data),
};
public operationLog = {
downloadExcel: (data) => this.trans('post', '/operationLog/downloadExcel', data),
getAll: (page, rows, data) => this.trans('get', '/operationLog/getAll?page=' + page + '&rows=' + rows, data),
getByTerm: (page, rows, data) => this.trans('post', '/operationLog/getByTerm?page=' + page + '&rows=' + rows, data),
};
public gateway = {
addGateway: (data) => this.trans('post', '/gateway/addGateway', data),
allocationGateway: (data) => this.trans('post', '/gateway/allocationGateway', data),
batchAddGateway: (data) => this.trans('post', '/gateway/batchAddGateway', data),
batchDeleteGateway: (data) => this.trans('post', '/gateway/batchDeleteGateway', data),
deleteGateway: (data) => this.trans('post', '/gateway/deleteGateway', data),
deployGateway: (data) => this.trans('post', '/gateway/deployGateway', data),
disonnectGateway: (data) => this.trans('post', '/gateway/disonnectGateway', data),
getAll: (data) => this.trans('get', '/gateway/getAll', data),
getAllForLike: (data) => this.trans('post', '/gateway/getAllForLike', data),
updateGateway: (data) => this.trans('post', '/gateway/updateGateway', data),
};
public login = {
dologin: (data) => this.trans('post', '/login/dologin', data),
logout: (data) => this.trans('get', '/login/logout', data),
};
public loginlog = {
getAll: (page, rows, data) => this.trans('get', '/loginlog/getAll?page=' + page + '&rows=' + rows, data),
getByTime: (page, rows, data) => this.trans('post', '/loginlog/getByTime?page=' + page + '&rows=' + rows, data),
};
public monitoringPoint = {
getByFactoryAreaNo: (data) => this.trans('post', '/monitoringPoint/getByFactoryAreaNo', data),
addMonitoringPoint: (data) => this.trans('post', '/monitoringPoint/addMonitoringPoint', data),
deleteMonitoringPoint: (data) => this.trans('post', '/monitoringPoint/deleteMonitoringPoint', data),
geByMonitoringPointNameForLike: (data) => this.trans('post', '/monitoringPoint/geByMonitoringPointNameForLike', data),
getAll: (data) => this.trans('get', '/monitoringPoint/getAll', data),
getByFactoryNo: (data) => this.trans('post', '/monitoringPoint/getByFactoryNo', data),
updateMonitoringPoint: (data) => this.trans('post', '/monitoringPoint/updateMonitoringPoint', data),
getAll: (page, rows, data) => this.trans('get', '/system/loginlog/getAll?page=' + page + '&rows=' + rows, data),
getByTime: (page, rows, data) => this.trans('post', '/system/loginlog/getByTime?page=' + page + '&rows=' + rows, data),
};
public monitoringPointType = {
addMonitoringPointType: (data) => this.trans('post', '/monitoringPointType/addMonitoringPointType', data),
deleteMonitoringPointType: (data) => this.trans('post', '/monitoringPointType/deleteMonitoringPointType', data),
getAll: (data) => this.trans('get', '/monitoringPointType/getAll', data),
getByMonitoringPointTypeForLike: (data) => this.trans('post', '/monitoringPointType/getByMonitoringPointTypeForLike', data),
updateMonitoringPointType: (data) => this.trans('post', '/monitoringPointType/updateMonitoringPointType', data),
public login = {
loginForToken: (data) => this.trans('post', '/system/login/loginForToken', data),
logout: (data) => this.trans('get', '/system/login/logout', data),
};
public permission = {
getAll: (data) => this.trans('get', '/permission/getAll', data),
getPermissionByRoleNo: (data) => this.trans('post', '/permission/getPermissionByRoleNo', data),
};
public sensor = {
addSensor: (data) => this.trans('post', '/sensor/addSensor', data),
batchAddSensor: (data) => this.trans('post', '/sensor/batchAddSensor', data),
batchDeleteSensor: (data) => this.trans('post', '/sensor/batchDeleteSensor', data),
bindSensor: (data) => this.trans('post', '/sensor/bindSensor', data),
bindSensorAndMonitoringPoint: (data) => this.trans('post', '/sensor/bindSensorAndMonitoringPoint', data),
deleteSensor: (data) => this.trans('post', '/sensor/deleteSensor', data),
getAll: (data) => this.trans('get', '/sensor/getAll', data),
getByFreeAndBindGateway: (data) => this.trans('get', '/sensor/getByFreeAndBindGateway', data),
getByMonitoringPoint: (data) => this.trans('post', '/sensor/getByMonitoringPoint', data),
getByFreeForType: (data) => this.trans('post', '/sensor/getByFreeForType', data),
getUnFreeByType: (data) => this.trans('post', '/sensor/getUnFreeByType', data),
getByTerm: (data) => this.trans('post', '/sensor/getByTerm', data),
unBindSensor: (data) => this.trans('post', '/sensor/unBindSensor', data),
getUnFreeByCissType: (data) => this.trans('post', '/sensor/getUnFreeByCissType', data),
unbindSensorAndMonitoringPoint: (data) => this.trans('post', '/sensor/unbindSensorAndMonitoringPoint', data),
updateSensor: (data) => this.trans('post', '/sensor/updateSensor', data),
updateSensorFactory: (data) => this.trans('post', '/sensor/updateSensorFactory', data)
};
public user = {
addUser: (data) => this.trans('post', '/user/addUser', data),
deleteUser: (data) => this.trans('post', '/user/deleteUser', data),
getAll: (data) => this.trans('get', '/user/getAll', data),
getByUserNameForLike: (data) => this.trans('post', '/user/getByUserNameForLike', data),
getSelfInfo: (data) => this.trans('get', '/user/getSelfInfo', data),
updateSelfPassword: (data) => this.trans('post', '/user/updateSelfPassword', data),
updateSelfUser: (data) => this.trans('post', '/user/updateSelfUser', data),
updateUser: (data) => this.trans('post', '/user/updateUser', data),
getAll: (data) => this.trans('get', '/system/permission/getAll', data),
getPermissionByRoleNo: (data) => this.trans('post', '/system/permission/getPermissionByRoleNo', data),
};
public role = {
addRole: (data) => this.trans('post', '/role/addRole', data),
deleteRole: (data) => this.trans('post', '/role/deleteRole', data),
getAll: (data) => this.trans('get', '/role/getAll', data),
getByFactoryNo: (data) => this.trans('post', '/role/getByFactoryNo', data),
getByRoleNameForLike: (data) => this.trans('post', '/role/getByRoleNameForLike', data),
updateRole: (data) => this.trans('post', '/role/updateRole', data),
};
public device = {
addDevice: (data) => this.trans('post', '/device/addDevice', data),
addRecord: (data) => this.trans('post', '/device/addRecord', data),
delDevice: (data) => this.trans('post', '/device/delDevice', data),
downloadAlarmData: (data) => this.trans('post', '/device/downloadAlarmData', data),
downloadData: (data) => this.trans('post', '/device/downloadData', data),
downRecord: (data) => this.trans('get', '/device/downRecord', data),
getAll: (data) => this.trans('get', '/device/getAll', data),
setState: (data) => this.trans('post', '/device/setState', data),
updateDevice: (data) => this.trans('post', '/device/updateDevice', data),
addRole: (data) => this.trans('post', '/system/role/addRole', data),
deleteRole: (data) => this.trans('post', '/system/role/deleteRole', data),
getAll: (data) => this.trans('get', '/system/role/getAll', data),
updateRole: (data) => this.trans('post', '/system/role/updateRole', data),
};
public model = {
addModel: (data) => this.trans('post', '/model/addModel', data),
delModel: (data) => this.trans('post', '/model/delModel', data),
getAll: (data) => this.trans('get', '/model/getAll', data),
getByDeviceType: (data) => this.trans('post', '/model/getByDeviceType', data),
updateModel: (data) => this.trans('post', '/model/updateModel', data),
};
public modelInfo = {
addModelInfo: (data) => this.trans('post', '/modelInfo/addModelInfo', data),
delModelInfo: (data) => this.trans('post', '/modelInfo/delModelInfo', data),
getAll: (data) => this.trans('post', '/modelInfo/getAll', data),
};
public probes = {
addProbes: (data) => this.trans('post', '/probes/addProbes', data),
delDevChannel: (data) => this.trans('post', '/probes/delDevChannel', data),
getAll: (data) => this.trans('post', '/probes/getAll', data),
updateDevChannel: (data) => this.trans('post', '/probes/updateDevChannel', data),
public user = {
addUser: (data) => this.trans('post', '/system/user/addUser', data),
deleteUser: (data) => this.trans('post', '/system/user/deleteUser', data),
getAll: (data) => this.trans('get', '/system/user/getAll', data),
getByUserNameForLike: (data) => this.trans('post', '/system/user/getByUserNameForLike', data),
getSelfInfo: (data) => this.trans('get', '/system/user/getSelfInfo', data),
updateSelfPassword: (data) => this.trans('post', '/system/user/updateSelfPassword', data),
updateUser: (data) => this.trans('post', '/system/user/updateUser', data),
};
public probesModel = {
addProbesModel: (data) => this.trans('post', '/probesModel/addProbesModel', data),
delProbesModel: (data) => this.trans('post', '/probesModel/delProbesModel', data),
getAll: (data) => this.trans('get', '/probesModel/getAll', data),
updateProbesModel: (data) => this.trans('post', '/probesModel/updateProbesModel', data),
public area = {
getAll: (data) => this.trans('get', '/system/getAll', data),
getByCity: (data) => this.trans('post', '/system/getByCity', data),
};
public topicModel = {
addTopicModel: (data) => this.trans('post', '/topicModel/addTopicModel', data),
delTopicModel: (data) => this.trans('post', '/topicModel/delTopicModel', data),
getAll: (data) => this.trans('get', '/topicModel/getAll', data),
updateTopic: (data) => this.trans('post', '/topicModel/updateTopic', data),
public city = {
getByProvince: (data) => this.trans('post', '/system/city/getByProvince', data),
};
public topicModelInfo = {
addTopicModelInfo: (data) => this.trans('post', '/topicModelInfo/addTopicModelInfo', data),
delTopicModel: (data) => this.trans('post', '/topicModelInfo/delTopicModel', data),
getAll: (data) => this.trans('post', '/topicModelInfo/getAll', data),
updateTopicModelInfo: (data) => this.trans('post', '/topicModelInfo/updateTopicModelInfo', data),
public company = {
addCompany: (data) => this.trans('post', '/system/company/addCompany', data),
delCompany: (data) => this.trans('post', '/system/company/delCompany', data),
getAll: (data) => this.trans('get', '/system/company/getAll', data),
updateCompany: (data) => this.trans('post', '/system/company/updateCompany', data),
updateCompanyPermission: (data) => this.trans('post', '/system/company/updateCompanyPermission', data),
};
public probesModelInfo = {
addProbesModelInfo: (data) => this.trans('post', '/probesModelInfo/addProbesModelInfo', data),
delProbesModelInfo: (data) => this.trans('post', '/probesModelInfo/delProbesModelInfo', data),
getAll: (data) => this.trans('post', '/probesModelInfo/getAll', data),
updateProbesModelInfo: (data) => this.trans('post', '/probesModelInfo/updateProbesModelInfo', data),
public province = {
getAll: (data) => this.trans('get', '/system/province/getAll', data),
};
private trans(type, addr, data) {
......
......@@ -8,7 +8,6 @@ export class AuthService implements CanActivateChild, OnInit {
public login = false;
private permissionR = '';
// 判断是否有 cookie 的标识
isLogin = false;
constructor(private router: Router, private menu: MenuService, private permission: PermissionService) {
......@@ -29,11 +28,12 @@ export class AuthService implements CanActivateChild, OnInit {
// 登录验证,如果有值就返回true.没有就跳转登录
checkLogin() {
if (window.sessionStorage.getItem('_AMap_AMap.MapInner')) {
return true;
}
this.router.navigate(['/extra/login']);
return false;
// if (window.sessionStorage.getItem('_AMap_AMap.MapInner')) {
// return true;
// }
// this.router.navigate(['/extra/login']);
// return false;
}
// 路由跳转权限检测
......
{
"---------------其他": "---------------其他",
"picMaxTips":"(limit in 200*200)",
"data":"Data",
"per":"pcs",
"tai":"pcs",
"hour":"hours",
"times":"times",
"webPlatform":"WebSite",
"x": "X(mg)",
"y": "Y(mg)",
"z": "Z(mg)",
"temp": "Temperature(℃)",
"press": "Pressure(kPa)",
"humid": "Humidity(%rH)",
"mag_x": "X axis geomagnetism (μT)",
"mag_y": "Y axis geomagnetism (μT)",
"mag_z": "Z axis geomagnetism (μT)",
"light": "Brightness(lux)",
"noise": "Noise(mV)",
"mag_r": "Geomagnetic reluctance(Ω)",
"acc_x": "X axis acceleration(mg)",
"acc_y": "Y axis acceleration(mg)",
"acc_z": "Z axis acceleration(mg)",
"gyros": "Gyroscope angular velocity(°/s)",
"gyros_x": "Gyroscope angular velocity X(°/s)",
"gyros_y": "Gyroscope angular velocity Y(°/s)",
"gyros_z": "Gyroscope angular velocity Z(°/s)",
"---------------侧边栏": "---------------侧边栏",
"alarmInfo": "Alarm information",
"alarmWarn": "Alarm early warning",
"departmentManage": "Department management",
"operateSet": "Operation log",
"factoryManage":"Plant management",
"factoryPaint":"Plant configuration chart",
"loginLog": "Login log",
"personSet":"Personal settings",
"pointAnalyse": "Monitoring point analysis",
"pointManage": "Monitoring point management",
"pointType": "Monitoring point type",
"pointPaint":"Monitoring point configuration chart",
"macRoom": "Server room",
"machineRoom": "Server room management",
"machineRoomDetail": "Server room details",
"roleManage": "Role management",
"historyData": "History data",
"areaManage":"Line management",
"cuttingMachine": "Cutting machine management",
"cuttingMachineDetail": "Cutting machine details",
"deviceManage": "Sensor management",
"deviceModel": "Equipment type",
"compare": "Data comparison",
"dataManage": "Data management",
"actualData": "Realtime data",
"home":"Home page",
"gatewayManage": "Gateway management",
"systemSet": "System setup",
"userManage": "Database user management",
"warnInfo": "Alarm information",
"warnNew": "Add alarm",
"warnEdit": "Modify alarm",
"xdkDetail": "XDK sensor",
"cissDetail": "CISS sensor",
"---------------a": "---------------a",
"installAddr":"Installation address",
"installTime":"Installation time",
"installPlace":"Installation position",
"downloadByTerm":"Downloading data by conditions",
"---------------b": "---------------b",
"alarmInformation":"Alarm information",
"editSensor":"Edit Sensor",
"editMonitoringPoint":"Edit monitoring point",
"editMonitoringPointType":"Edit monitoring point type",
"percent":"Percentile value",
"bind":"Binding",
"bindSensor":"Binding sensor",
"bindMonitoringPoint":"Binding monitoring point",
"bindGateway":"Binding gateway",
"bindWarn":"Binding alarm",
"save":"Save",
"savePic":"Save picture",
"alarm":"Alarm",
"alarmNo":"Alarm number",
"alarmSelect":"Alarm query",
"alarmDispose":"Alarm processing",
"alarmExport":"Alarm export",
"alarmType":"Alarm type",
"alarmDes":"Alarm description",
"alarmTime":"Alarm time",
"alarmInThirty":" Alarm time should be within 30 days.",
"alarmData":"Alarm data",
"alarmDataGraph":"Alarm data chart",
"alarmCountStatis":"Alarm quantity statistics",
"alarmStatisInfo":"Alarm statistics information",
"alarmWarning":"Alarm early warning",
"sorryNotFound":"Sorry, the page you visited does not exist.",
"remark":"Remark",
"edit":"Edit",
"editDepartment":"Edit department",
"editFactoryLine":"Edit line",
"editSensorType":"Edit sensor type",
"editFactory":"Edit plant",
"editMonitoring":"Edit monitoring point",
"editMonitoringType":"Edit monitoring point type",
"editRole":"Edit role",
"editDeviceModel":"Edit equipment type",
"editGateway":"Edit gateway",
"editUser":"Edit user",
"editWarn":"Edit alarm",
"change":"Update",
"boschChina":"Bosch China",
"departmentSelect":"Department query",
"department":"Department management",
"departmentName":"Department name",
"departmentDelete":"Delete department",
"departmentInsert":"Add department",
"departmentUpdate":"Modify department",
"departmentHighestPermission":"Department's highest authority",
"---------------c": "---------------c",
"excess":"excess",
"sensorType": "Sensor type",
"egNum":"Sampling SN",
"params":"Parameter",
"operate":"Operation",
"operateIp":"Operation IP",
"operateSuccess":"Operation success",
"operateDes":"Operation description",
"operateName":"Operation name",
"operationLog":"Operation log",
"operationLogSelect":"Operation log query",
"operationLogExport":"Operation log export",
"operateFail":"Operation failed",
"operateTime":"Operation time",
"operateTips":"Operation hint",
"operateUser":"Operation user",
"operateUserLoginName":"Operation user login name",
"operateUserName":"Operation user name",
"see":"View",
"seeHistory":"Viewing history",
"search":"Query",
"searchParams":"Query parameter",
"searchTimeInOneHour":"Query interval should be less than one hour.",
"factoryLine":"Line",
"factoryLineSelect":"Line query",
"factoryLineName":"Line name",
"factoryLineDelete":"Delete Line",
"factoryLineInsert":"Add line",
"factoryLineUpdate":"Modify line",
"factoryLineHighestPermission":"Line's highest authority",
"factory":"Plant",
"factorySelect":"Plant query",
"factoryArea":"Plant management",
"factoryName":"Plant name",
"factoryConfig":"Plant configuration",
"factoryDelete":"Delete plant",
"factoryInsert":"Add plant",
"factoryInfo":"Plant information",
"factoryUpdate":"Modify plant",
"factoryHighestPermission":"Plant's highest authority",
"moreThanCanBeSelectedSensors":"Exceeding the number of selectable sensors",
"dispose":"Handle",
"disposeResult":"Handling result",
"disposer":"Handler",
"sensor":"Sensor",
"sensorSelect":"Sensor query",
"sensorAllocation":"Distribution sensor",
"sensorNum":"Number of sensors",
"deviceManager":"Sensor management",
"collectorManage":"Sensor management",
"sensorUnbindGateway":"Sensor unbunding gateway",
"deviceType":"Sensor type",
"deviceTypeSelect":"Sensor type query",
"deviceTypeDelete":"Delete sensor type",
"deviceTypeInsert":"Add sensor type",
"deviceTypeUpdate":"Modify sensor type",
"sensorName":"Sensor name",
"sensorDelete":"Delete sensor",
"sensorInsert":"Add sensor",
"sensorUpdate":"Modify sensor",
"sensorSN":"Sensor SN",
"sensorState":"Sensor status",
"createTime":"Create time",
"---------------d": "---------------d",
"waitForSelect":"Content to be selected",
"onceTestResult":"Roughness of single production",
"onceTestResultLineChart":"Roughness of single production",
"current":"Current",
"currentPassword":"Current password",
"knife":"Knife head 4",
"loginOutSuccess":"Log out successfully",
"loginPassword":"Login password",
"loginName":"Login name",
"loginOutValidityTips":"Login certificate is invalid. Please login again.",
"loginWay":"Login way",
"loginLogSelect":"Login log query",
"loginLogExport":"Login log export",
"loginTime":"Login time",
"loginInfo":"Login information",
"under":"is under",
"address":"Address",
"wrongTel":"Incorrect telephone",
"readParams":"Read parameter",
"compareParams":"Contrast parameter",
"---------------e": "---------------e",
"---------------f": "---------------f",
"backToList":"Return list",
"distribute":"Distribution",
"distributeSensor":"Distribution sensor",
"distributeGateway":"Distribution gateway",
"wrongServer":"Server exception",
"wrongServerWithCode":"Server exception,error code",
"contact":"Responsibler",
"contactLinkWay":"Responsibler contact mode",
"contactTel":"Responsibler mobile phone number",
"---------------g": "---------------g",
"sensorBeSelected":"The sensor has been already selected.",
"allKnifeAllTimesInOneMonth":"The number of knife heads used by the cutting machine.",
"selfSystem":"Personal settings",
"selfSelect":"Personal information query",
"personSetSelect":"Personal information query",
"selfUpdate":"Personal information update",
"personSetUpdate":"Personal information update",
"more":"More",
"updateTime":"Update time",
"factoryImg":"Plant picture",
"companyInfo":"Company information",
"wrongReason":"Fault cause",
"---------------h": "---------------h",
"horizontalContrast":"Horizontal contrast",
"userSelect":"Database user query",
"user":"Database user management",
"userDelete":"Delete database user",
"userInsert":"Add database user",
"userUpdate":"Modify database user",
"wrongToGetData":"Get data failed",
"---------------i": "---------------i",
"---------------j": "---------------j",
"machineRoomSelect":"Server room details",
"baseInfo":"Basic information",
"refreshNow":"Realtime refresh",
"loading":"Loading",
"monitoringPoint":"Monitoring point",
"monitoringPointBindingSensor":"Monitoring point binding sensor",
"monitoringPointNo":"Monitoring point number",
"monitoringPointSelect":"Monitoring point query",
"monitoringPointAnalyse":"Monitoring point analysis",
"monitoringPointType":"Monitoring point type",
"monitoringPointTypeSelect":"Monitoring point type query",
"pointTypeSelect":"Monitoring point type query",
"monitoringPointTypeName":"Monitoring point type name",
"monitoringPointTypeDelete":"Monitoring point type delete",
"monitoringPointTypeInsert":"Monitoring point type add",
"pointTypeInsert":"Monitoring point type add",
"monitoringPointTypeUpdate":"Monitoring point type modify",
"pointTypeUpdate":"Monitoring point type modify",
"monitoringPointName":"Monitoring point name",
"monitoringPointDelete":"Delete monitoring point",
"pointTypeDelete":"Delete monitoring point",
"monitoringPointInsert":"Add monitoring point",
"monitoringPointImg":"Monitoring point picture",
"monitoringPointUpdate":"Modify monitoring point",
"monitoringPointStatusStatis":"Monitoring point status chart",
"monitoringPointState":"Monitoring point status",
"monitoringPointConfig":"Monitoring point configuration",
"role":"Role",
"roleSelect":"Role query",
"roleName":"Role name",
"rolePermission":"Role permission",
"roleDelete":"Delete role",
"roleInsert":"Add role",
"roleUpdate":"Modify role",
"end":"End",
"endTime":"End time",
"unbindSensor":"Untying sensor",
"unbindGateway":"Untying gateway",
"wrongAmount":"Incorrect amount",
"lastHalfMonth":"Nearly half a month",
"lastMonthAlarmData":"Alarm data in the past month",
"lastMonthAlarmCounts":"Total alarm times in the past month",
"lastDay":"Nearly one day",
"lastAHour":"Nearly one hour",
"lastHalfDay":"Nearly half a day",
"lastMonth":"Nearly one month",
"lastWeek":"Nearly one week",
"---------------k": "---------------k",
"start":"Start",
"startCompare":"Start comparison",
"startTime":"Start time",
"startEndTimeInOneDay":"Start time and end time should be on the same day.",
"startShouldLessThanEndTime":"Start time should be less than end time",
"startEndTimeShouldInFiveMinutes":"The interval between start time and end time less than 5 minutes.",
"startDownload":"Start downloading",
"---------------l": "---------------l",
"type":"Type",
"typeName":"Type name",
"offline":"Offline",
"historyDataSelect":"History data query",
"quicklyLogin":"Login immediately",
"contactType":"Contact information",
"differentPassword":"The two new passwords are different,please confirm and input again.",
"---------------m": "---------------m",
"password":"Password",
"description":"Description",
"name":"Name",
"---------------n": "---------------n",
"testPercent":"Roughness trend",
"testPercentLineChart":"Roughness trend diagram",
"testResultAve":"Fitting result mean value",
"testResultAveLineChart":"Fitting result mean value broken line chart",
"---------------o": "---------------o",
"---------------p": "---------------p",
"config":"Configuration",
"---------------q": "---------------q",
"remove": "Clear",
"to":"to",
"cutMachine":"Cutting machine",
"cuttingMachineSelect":"Cutting machine details",
"checkIfSerialNumberExists":"Please check if there are sample SN in this period.",
"checkIfAllSensorAndSerialNumFilled":"Please check whether the sensor and sample sn are complete.",
"checkIfAllSensorFilled":"Please check whether comparison sensor is complete.",
"checkIfHasData":"Please check if where is any data in the period.",
"pleaseFillInPassword":"Please input password.",
"pleaseFillInLanguage":"Please input language.",
"pleaseFillInKeyword":"Please input search keywords.",
"pleaseFillInUserName":"Please input username.",
"pleaseAddSensorToCompare":"Please add sensors that need comparision.",
"pleaseFillAll":"Please fill out all required items.",
"pleaseFillSerialNum":"Please fill out sample SN.",
"pleaseFillRequired":"Please fill out required items first.",
"pleaseChooseParams":"Please choose parameter.",
"pleaseChooseSensor":"Please choose sensor.",
"pleaseChooseSensorType":"Please choose sensor type.",
"pleaseChooseCompareParams":"Please choose comparison parameter.",
"pleaseChooseMonitoringPoint":"Please choose monitoring point.",
"pleaseChooseEndTime":"Please choose end time.",
"pleaseChooseStartTime":"Please choose begin time.",
"pleaseChooseStartEndTime":"Please choose begin time and end time.",
"pleaseChoosePermission":"Please choose permission.",
"pleaseChooseDevices":"Please choose equipment.",
"pleaseChooseWarnNo":"Please choose alarm number.",
"pleaseChooseRightAlarmTime":"Please choose correct alarm time.",
"cancel":"Cancel",
"allCleanUp":"All clear",
"allSelected":"All choose",
"confirm":"Confirm",
"confirmUnbindMonitoringPoint":"Confirm untying monitoring point?",
"confirmUnbindGateway":"Confirm untying gateway?",
"confirmDelete":"Confirm deletion?",
"confirmDeleteThisRecord":"Confirm delete the record?",
"confirmNewPassword":"Confirm new password",
"---------------r": "---------------r",
"---------------s": "---------------s",
"all": "All",
"delete":"Delete",
"uploadHeadImg":"Upload head picture",
"uploadImg":"Upload picture",
"max":"upper limit",
"deviceModelSelect":"Equipment type query",
"deviceModelDelete":"Delete equipment type",
"deviceModelInsert":"Add equipment type",
"deviceModelUpdate":"Modify equipment type",
"setParams":"Configuration parameter",
"time":"Time",
"timeShouldInOneHour":"Interval should be within one hour.",
"wrongTime":"Incorrect time",
"realData":"Realtime data",
"realDataSelect":"Realtime date query",
"confirmDeleteThisKnifeBroken":"Confirm delete device collision alarm?",
"phone":"Cell-phone number",
"indexManager":"Home page",
"index":"Home page",
"indexSelect":"Home page query",
"dataComparison":"Data comparison",
"dataComparisonSelect":"Data comparison query",
"dataManager":"Data management",
"wrongNum":"Incorrect numerical value",
"belongDepartment":"Department",
"belongFactory":"Plant",
"belongMonitoringPoint":"Monitoring point",
"belongGroup":"Organization",
"allData":"All data",
"belongFactoryArea":"Plant",
"belongFactoryAlarmMpointNum":"Total number of alarm monitoring points in plant",
"belongFactoryMPointNum":"Total number of monitoring points in plant",
"belongFactoryOfflineMPointNum":"Total number of offline monitoring points in plant",
"belongFactoryOnlineMPointNum":"Total number of online monitoring points in plant",
"belongFactoryNormalMPointNum":"Total number of normal monitoring points in plant",
"belongPlace":"Location",
"---------------t": "---------------t",
"condition":"Condition",
"picUploadSuccess":"Upload picture successfully",
"picUploadFailed":"Upload picture failed.",
"signOut":"Exit",
"fillError":"filled in is incorrect",
"---------------u": "---------------u",
"---------------v": "---------------v",
"---------------w": "---------------w",
"gatewayBindingSensor":"Gateway binding sensor",
"gatewaySelect":"Gateway query",
"gateway":"Gateway management",
"gatewayType":"Gateway type",
"gatewayName":"Gateway name",
"gatewayDelete":"Delete gateway",
"gatewayInsert":"Add gateway",
"gatewayUpdate":"Modify gateway",
"gatewaySN":"Gateway SN",
"gatewayState":"Gateway status",
"unDispose":"Untreated",
"tempHumidTrend":"Temperature and humidity trend",
"noUserInfo":"Unable to read current user information.",
"---------------x": "---------------x",
"modifyTime":"Modify time",
"systemManager":"System setup",
"min":"lower limit",
"nowKnifeTimes":"The number of knife head used",
"nowKnifeTime":"Usage time of knife head",
"nowKnifeRunTimes":"Knife head running times",
"nowKnifeUsed": "The current tool bit \n has been used for",
"nowKnifeRunTime":"Knife head running time",
"detail":"Details",
"detailAddress":"Detail address",
"projectNum":"Project No",
"addDepartment":"Create department",
"addFactoryLine":"Create line",
"addSensor":"Create sensor",
"addSensorType":"Create sensor type",
"addFactory":"Creat plant",
"addMonitoringPoint":"Create monitoring point",
"addMonitoringPointType":"Create monitoring type",
"addDeviceModel":"Create equipment type",
"addGateway":"Create gateway",
"addUser":"Create user",
"addWarn":"Create alarm",
"newPassword":"Create password",
"add":"Create",
"addRole":"Create role",
"modelName":"Type name",
"update":"Modify",
"updatePassword":"Modify password",
"num":"No",
"selectSensor":"Choose sensor",
"selectMonitoringPoint":"Choose monitoring point",
"selectTime":"Choose time",
"---------------y": "---------------y",
"disposed":"Done",
"selected":"Choosed content",
"userNo":"User NO",
"userLogin":"User login",
"userRole":"User role",
"userName":"Username",
"nickName":"Nickname",
"userPhone":"User cell-phone number",
"userHeadImg":"User head picture",
"noLoginTips":"User is not logged in ,please login first.",
"userRealName":"Username",
"userEmail":"User email",
"email":"mailbox",
"warnNo":"Alarm number",
"warningSelect":"Alarm query",
"warningExport":"Alarm export",
"warning":"Alarm management",
"warnName":"Alarm name",
"warningDelete":"Delete alarm",
"warningInsert":"Add alarm",
"warningUpdate":"Modify alarm",
"maybeUsed":"It's expected \n to be used",
"run":"Running",
"---------------z": "---------------z",
"maximum":"maximum",
"minimum":"minimum",
"accountInfo":"Account information",
"online":"Online",
"noData":"No data",
"normal":"Normal",
"linkingToSource":"Ongoing resource connection…",
"toZh":"Ch",
"toEn":"En",
"statusChart":"Status chart",
"state":"Status",
"knifeDispose":"Knife collision treatment ",
"verticalContrast":"Vertical contrast ",
"lastAlarmTime":"Lasted alarm time"
"-----------菜单-----------": "-----------菜单-----------",
"system": "系统管理",
"log": "登陆日志",
"operate": "操作日志",
"user": "后台用户管理",
"role": "角色管理",
"person": "个人设置",
"home": "首页",
"-----------常用-----------": "-----------常用-----------",
"signOut": "登出",
"num": "序号",
"startTime": "开始时间",
"endTime": "结束时间",
"search": "查询",
"allData": "所有数据",
"add": "新增",
"edit": "编辑",
"delete": "删除",
"remark": "备注",
"oper": "操作",
"description": "描述",
"permission": "权限",
"cancel": "取消",
"confirm": "确认",
"email": "邮箱",
"phone": "手机号码",
"-----------业务-----------": "-----------业务-----------",
"loginName": "登录名",
"userRealName": "用户姓名",
"loginTime": "登录时间",
"loginWay": "登录方式",
"loginInfo": "登录信息",
"userNo": "用户编号",
"userName": "用户名",
"nickName": "用户昵称",
"webPlatform": "web端",
"userRole": "用户角色",
"companyName": "公司名称",
"roleName": "角色名称",
"roleNo": "角色编号",
"addUser": "新增用户",
"editUser": "编辑用户",
"selectCompany": "选择公司",
"loginPassword": "登录密码",
"selectRole": "选择角色",
"userPhone": "用户手机",
"userEmail": "用户邮箱",
"userImg": "用户头像",
"editRole": "编辑角色",
"addRole": "新增角色",
"confirmDeleteThisRecord": "确认删除这条记录吗"
}
{
"---------------a": "---------------a",
"---------------b": "---------------b",
"percent": "百分值",
"change": "变更",
"alarm": "报警",
"alarmInfo": "报警信息",
"alarmWarn": "报警预警",
"-----------菜单-----------": "-----------菜单-----------",
"system": "系统管理",
"log": "登陆日志",
"operate": "操作日志",
"user": "后台用户管理",
"role": "角色管理",
"person": "个人设置",
"home": "首页",
"-----------常用-----------": "-----------常用-----------",
"signOut": "登出",
"num": "序号",
"startTime": "开始时间",
"endTime": "结束时间",
"search": "查询",
"allData": "所有数据",
"add": "新增",
"edit": "编辑",
"departmentManage": "部门管理",
"---------------c": "---------------c",
"search":"查询",
"operate": "操作",
"operateSet": "操作设置",
"collectorManage": "传感器管理",
"factoryManage":"厂区管理",
"factoryPaint":"厂区配置图",
"---------------d": "---------------d",
"tel": "电话",
"loginName": "登录名",
"loginLog": "登录日志",
"current": "当前",
"---------------e": "---------------e",
"---------------f": "---------------f",
"---------------g": "---------------g",
"more":"更多",
"personSet":"个人设置",
"---------------h": "---------------h",
"---------------i": "---------------i",
"---------------j": "---------------j",
"pointAnalyse": "监测点分析",
"pointManage": "监测点管理",
"pointType": "监测点类型",
"pointPaint":"监测点配置图",
"machineRoom": "机房管理",
"machineRoomDetail": "机房详情",
"end": "结束",
"roleManage": "角色管理",
"---------------k": "---------------k",
"start": "开始",
"---------------l": "---------------l",
"historyData": "历史数据",
"type": "类型",
"---------------m": "---------------m",
"name": "名称",
"moduleManage": "模块管理",
"delete": "删除",
"remark": "备注",
"oper": "操作",
"description": "描述",
"---------------n": "---------------n",
"---------------o": "---------------o",
"---------------p": "---------------p",
"channelTopic": "配置模板管理",
"moduleCenter": "配置中心",
"---------------q": "---------------q",
"remove": "清除",
"permission": "权限",
"cancel": "取消",
"confirm": "确认",
"cancel":"取消",
"areaManage":"产线管理",
"cuttingMachine": "切削机管理",
"cuttingMachineDetail": "切削机详情",
"---------------r": "---------------r",
"---------------s": "---------------s",
"deviceManage": "设备管理",
"deviceType": "传感器类型",
"deviceModel": "设备型号",
"delete": "删除",
"time": "时间",
"data": "数据",
"compare": "数据对比",
"dataManage": "数据管理",
"actualData": "实时数据",
"all": "所有",
"home":"首页",
"---------------t": "---------------t",
"loginOut":"退出",
"partManage": "通道模板管理",
"condition": "条件",
"---------------u": "---------------u",
"---------------v": "---------------v",
"---------------w": "---------------w",
"gatewayManage": "网关管理",
"---------------x": "---------------x",
"index": "序号",
"detail":"详情",
"systemSet": "系统设置",
"add": "新增",
"adr": "地址",
"---------------y": "---------------y",
"user": "用户",
"userManage": "后台用户管理",
"warnInfo": "预警信息",
"warnNew": "预警新增",
"warnEdit": "预警编辑",
"---------------z": "---------------z",
"status": "状态",
"subjectManage": "主题模板管理",
"---------------else": "---------------else",
"xdkDetail": "XDK传感器",
"cissDetail": "CISS传感器"
"email": "邮箱",
"phone": "手机号码",
"-----------业务-----------": "-----------业务-----------",
"loginName": "登录名",
"userRealName": "用户姓名",
"loginTime": "登录时间",
"loginWay": "登录方式",
"loginInfo": "登录信息",
"userNo": "用户编号",
"userName": "用户名",
"nickName": "用户昵称",
"webPlatform": "web端",
"userRole": "用户角色",
"companyName": "公司名称",
"roleName": "角色名称",
"roleNo": "角色编号",
"addUser": "新增用户",
"editUser": "编辑用户",
"selectCompany": "选择公司",
"loginPassword": "登录密码",
"selectRole": "选择角色",
"userPhone": "用户手机",
"userEmail": "用户邮箱",
"userImg": "用户头像",
"editRole": "编辑角色",
"addRole": "新增角色",
"confirmDeleteThisRecord": "确认删除这条记录吗"
}
{
"---------------其他": "---------------其他",
"picMaxTips":"(宽高为200*200)",
"per":"个",
"tai":"台",
"hour":"小时",
"times":"次",
"webPlatform":"Web端",
"x": "X(mg)",
"y": "Y(mg)",
"z": "Z(mg)",
"temp": "温度(℃)",
"press": "气压(kPa)",
"humid": "湿度(%rH)",
"mag_x": "x轴地磁(μT)",
"mag_y": "y轴地磁(μT)",
"mag_z": "z轴地磁(μT)",
"light": "亮度(lux)",
"noise": "噪音(mV)",
"mag_r": "地磁磁阻(Ω)",
"acc_x": "x轴加速度(mg)",
"acc_y": "y轴加速度(mg)",
"acc_z": "z轴加速度(mg)",
"gyros": "陀螺仪角速度(°/s)",
"gyros_x": "陀螺仪角速度X(°/s)",
"gyros_y": "陀螺仪角速度Y(°/s)",
"gyros_z": "陀螺仪角速度Z(°/s)",
"---------------侧边栏": "---------------侧边栏",
"alarmInfo": "报警信息",
"alarmWarn": "报警预警",
"departmentManage": "部门管理",
"operateSet": "操作日志",
"factoryManage":"厂区管理",
"factoryPaint":"厂区配置图",
"loginLog": "登录日志",
"personSet":"个人设置",
"pointAnalyse": "监测点分析",
"pointManage": "监测点管理",
"pointType": "监测点类型",
"pointPaint":"监测点配置图",
"macRoom": "机房",
"machineRoom": "机房管理",
"machineRoomDetail": "机房详情",
"roleManage": "角色管理",
"historyData": "历史数据",
"areaManage":"产线管理",
"cuttingMachine": "切削机管理",
"cuttingMachineDetail": "切削机详情",
"deviceManage": "设备管理",
"deviceModel": "设备型号",
"compare": "数据对比",
"dataManage": "数据管理",
"actualData": "实时数据",
"home":"首页",
"gatewayManage": "网关管理",
"systemSet": "系统设置",
"userManage": "后台用户管理",
"warnInfo": "预警信息",
"warnNew": "预警新增",
"warnEdit": "预警编辑",
"xdkDetail": "XDK传感器",
"cissDetail": "CISS传感器",
"---------------a": "---------------a",
"installAddr":"安装地址",
"installTime":"安装时间",
"installPlace":"安装位置",
"downloadByTerm":"根据条件下载数据",
"---------------b": "---------------b",
"percent":"百分值",
"bind":"绑定",
"bindSensor":"绑定传感器",
"bindMonitoringPoint":"绑定监测点",
"bindGateway":"绑定网关",
"bindWarn":"绑定预警",
"save":"保存",
"savePic":"保存图片",
"alarm":"报警",
"alarmNo":"报警编号",
"alarmSelect":"报警查询",
"alarmDispose":"报警处理",
"alarmExport":"报警导出",
"alarmType":"报警类型",
"alarmDes":"报警描述",
"alarmTime":"报警时间",
"alarmInThirty":"报警时间应在近30天内",
"alarmData":"报警数据",
"alarmDataGraph":"报警数据图",
"alarmCountStatis":"报警数量统计",
"alarmStatisInfo":"报警统计信息",
"alarmInformation":"报警信息",
"alarmWarning":"报警预警",
"sorryNotFound":"抱歉,您访问的页面不存在",
"remark":"备注",
"edit":"编辑",
"editDepartment":"编辑部门",
"editFactoryLine":"编辑产线",
"editSensor":"编辑传感器",
"editSensorType":"编辑传感器类型",
"editFactory":"编辑工厂",
"editMonitoringPoint":"编辑监测点",
"editMonitoringPointType":"编辑监测点类型",
"editRole":"编辑角色",
"editDeviceModel":"编辑设备型号",
"editGateway":"编辑网关",
"editUser":"编辑用户",
"editWarn":"编辑预警",
"change":"变更",
"boschChina":"博世中国",
"departmentSelect":"部门查询",
"department":"部门管理",
"departmentName":"部门名称",
"departmentDelete":"部门删除",
"departmentInsert":"部门添加",
"departmentUpdate":"部门修改",
"departmentHighestPermission":"部门最高权限",
"---------------c": "---------------c",
"excess":"超过",
"egNum":"采样序号",
"params":"参数",
"operate":"操作",
"operateIp":"操作IP",
"operateSuccess":"操作成功",
"operateDes":"操作描述",
"operateName":"操作名称",
"operationLog":"操作日志",
"operationLogSelect":"操作日志查询",
"operationLogExport":"操作日志导出",
"operateFail":"操作失败",
"operateTime":"操作时间",
"operateTips":"操作提示",
"operateUser":"操作用户",
"operateUserLoginName":"操作用户登录名",
"operateUserName":"操作用户姓名",
"see":"查看",
"seeHistory":"查看历史",
"search":"查询",
"searchParams":"查询参数",
"searchTimeInOneHour":"查询时间间隔应小于一小时",
"factoryLine":"产线",
"factoryLineSelect":"产线查询",
"factoryLineName":"产线名称",
"factoryLineDelete":"产线删除",
"factoryLineInsert":"产线添加",
"factoryLineUpdate":"产线修改",
"factoryLineHighestPermission":"产线最高权限",
"factory":"厂区",
"factorySelect":"厂区查询",
"factoryArea":"厂区管理",
"factoryName":"厂区名称",
"factoryConfig":"厂区配置",
"factoryDelete":"厂区删除",
"factoryInsert":"厂区添加",
"factoryInfo":"厂区信息",
"factoryUpdate":"厂区修改",
"factoryHighestPermission":"厂区最高权限",
"moreThanCanBeSelectedSensors":"超过可选择传感器数量",
"dispose":"处理",
"disposeResult":"处理结果",
"disposer":"处理人",
"sensor":"传感器",
"sensorSelect":"传感器查询",
"sensorAllocation":"传感器分配",
"sensorNum":"传感器个数",
"deviceManager":"传感器管理",
"collectorManage": "传感器管理",
"sensorUnbindGateway":"传感器解绑网关",
"sensorType": "传感器类型",
"deviceType": "传感器类型",
"deviceTypeSelect":"传感器类型查询",
"deviceTypeDelete":"传感器类型删除",
"deviceTypeInsert":"传感器类型添加",
"deviceTypeUpdate":"传感器类型修改",
"sensorName":"传感器名称",
"sensorDelete":"传感器删除",
"sensorInsert":"传感器添加",
"sensorUpdate":"传感器修改",
"sensorSN":"传感器序列号",
"sensorState":"传感器状态",
"createTime":"创建时间",
"---------------d": "---------------d",
"waitForSelect":"待选择内容",
"onceTestResult":"单次粗糙度评价",
"onceTestResultLineChart":"单次粗糙度评价折线图",
"current":"当前",
"currentPassword":"当前密码",
"knife":"刀头",
"loginOutSuccess":"登出成功",
"loginPassword":"登录密码",
"loginName":"登录名",
"loginOutValidityTips":"登录凭证失效,请重新登录",
"loginWay":"登录渠道",
"loginLogSelect":"登录日志查询",
"loginLogExport":"登录日志导出",
"loginTime":"登录时间",
"loginInfo":"登录信息",
"under":"低于",
"address":"地址",
"wrongTel":"电话填写有误",
"readParams":"读取参数",
"compareParams":"对比参数",
"---------------e": "---------------e",
"---------------f": "---------------f",
"backToList":"返回列表",
"distribute":"分配",
"distributeSensor":"分配传感器",
"distributeGateway":"分配网关",
"wrongServer":"服务器异常",
"wrongServerWithCode":"服务器异常,错误代码",
"contact":"负责人",
"contactLinkWay":"负责人联系方式",
"contactTel":"负责人手机号",
"---------------g": "---------------g",
"sensorBeSelected":"该传感器已经被选择",
"allKnifeAllTimesInOneMonth":"该切削机所有刀头使用次数",
"selfSystem":"个人设置",
"selfSelect":"个人信息查询",
"personSetSelect":"个人信息查询",
"selfUpdate":"个人信息更新",
"personSetUpdate":"个人信息更新",
"more":"更多",
"updateTime":"更新时间",
"factoryImg":"工厂图片",
"companyInfo":"公司信息",
"wrongReason":"故障原因",
"---------------h": "---------------h",
"horizontalContrast":"横向对比",
"userSelect":"后台用户查询",
"user":"用户",
"userDelete":"后台用户删除",
"userInsert":"后台用户添加",
"userUpdate":"后台用户修改",
"wrongToGetData":"获取数据失败",
"---------------i": "---------------i",
"---------------j": "---------------j",
"machineRoomSelect":"机房详情",
"baseInfo":"基本信息",
"refreshNow":"即时刷新",
"loading":"加载中",
"monitoringPoint":"监测点",
"monitoringPointBindingSensor":"监测点绑定传感器",
"monitoringPointNo":"监测点编号",
"monitoringPointSelect":"监测点查询",
"monitoringPointAnalyse":"监测点分析",
"monitoringPointType":"监测点类型",
"monitoringPointTypeSelect":"监测点类型查询",
"pointTypeSelect":"监测点类型查询",
"monitoringPointTypeName":"监测点类型名称",
"monitoringPointTypeDelete":"监测点类型删除",
"pointTypeInsert":"监测点类型新增",
"monitoringPointTypeInsert":"监测点类型新增",
"monitoringPointTypeUpdate":"监测点类型修改",
"pointTypeUpdate":"监测点类型修改",
"monitoringPointName":"监测点名称",
"monitoringPointDelete":"监测点删除",
"pointTypeDelete":"监测点类型删除",
"monitoringPointInsert":"监测点添加",
"monitoringPointImg":"监测点图片",
"monitoringPointUpdate":"监测点修改",
"monitoringPointStatusStatis":"监测点状况统计",
"monitoringPointState":"监测点状态",
"monitoringPointConfig":"检测点配置",
"role":"角色",
"roleSelect":"角色查询",
"roleName":"角色名称",
"rolePermission":"角色权限",
"roleDelete":"角色删除",
"roleInsert":"角色添加",
"roleUpdate":"角色修改",
"end":"结束",
"endTime":"结束时间",
"unbindSensor":"解绑传感器",
"unbindGateway":"解绑网关",
"wrongAmount":"金额填写有误",
"lastHalfMonth":"近半个月",
"lastMonthAlarmData":"近一个月报警数据",
"lastMonthAlarmCounts":"近一个月总报警次数",
"lastDay":"近一天",
"lastAHour":"近一小时",
"lastHalfDay":"近半天",
"lastMonth":"近一月",
"lastWeek":"近一周",
"---------------k": "---------------k",
"start":"开始",
"startCompare":"开始对比",
"startTime":"开始时间",
"startEndTimeInOneDay":"开始时间和结束时间应在同一天",
"startShouldLessThanEndTime":"开始时间应小于结束时间",
"startEndTimeShouldInFiveMinutes":"开始时间与结束时间的时间间隔应小于五分钟",
"startDownload":"开始下载",
"---------------l": "---------------l",
"type":"类型",
"typeName":"类型名称",
"offline":"离线",
"historyDataSelect":"历史数据查询",
"quicklyLogin":"立即登录",
"contactType":"联系方式",
"differentPassword":"两次新密码不同,请重新输入.",
"---------------m": "---------------m",
"password":"密码",
"description":"描述",
"name":"名称",
"---------------n": "---------------n",
"testPercent":"粗糙度趋势",
"testPercentLineChart":"粗糙度趋势图",
"testResultAve":"拟合结果均值",
"testResultAveLineChart":"拟合结果均值折线图",
"---------------o": "---------------o",
"---------------p": "---------------p",
"config":"配置",
"---------------q": "---------------q",
"remove": "清除",
"to":"至",
"cutMachine":"切削机",
"cuttingMachineSelect":"切削机详情",
"checkIfSerialNumberExists":"请检查本时段内是否有采样序号",
"checkIfAllSensorAndSerialNumFilled":"请检查对比的传感器和采样序号是否填写完全",
"checkIfAllSensorFilled":"请检查对比的传感器是否填写完全",
"checkIfHasData":"请检查该时段内是否有数据",
"pleaseFillInPassword":"请输入密码",
"pleaseFillInLanguage":"请输入语言",
"pleaseFillInKeyword":"请输入搜索的关键字",
"pleaseFillInUserName":"请输入用户名",
"pleaseAddSensorToCompare":"请添加需要对比的传感器",
"pleaseFillAll":"请填完所有必填项",
"pleaseFillSerialNum":"请填写采样序号",
"pleaseFillRequired":"请先填完必填项",
"pleaseChooseParams":"请选择参数",
"pleaseChooseSensor":"请选择传感器",
"pleaseChooseSensorType":"请选择传感器类型",
"pleaseChooseCompareParams":"请选择对比参数",
"pleaseChooseMonitoringPoint":"请选择监测点",
"pleaseChooseEndTime":"请选择结束时间",
"pleaseChooseStartTime":"请选择开始时间",
"pleaseChooseStartEndTime":"请选择开始时间和结束时间",
"pleaseChoosePermission":"请选择权限",
"pleaseChooseDevices":"请选择设备",
"pleaseChooseWarnNo":"请选择预警编号",
"pleaseChooseRightAlarmTime":"请选择正确的报警时间",
"cancel":"取消",
"allCleanUp":"全清",
"allSelected":"全选",
"confirm":"确认",
"confirmUnbindMonitoringPoint":"确认解绑监测点吗",
"confirmUnbindGateway":"确认解绑网关吗",
"confirmDelete":"确认删除吗",
"confirmDeleteThisRecord":"确认删除这条记录吗",
"confirmNewPassword":"确认新密码",
"---------------r": "---------------r",
"---------------s": "---------------s",
"time": "时间",
"all": "所有",
"delete":"删除",
"uploadHeadImg":"上传头像",
"uploadImg":"上传图片",
"max":"上限",
"deviceModelSelect":"设备型号查询",
"deviceModelDelete":"设备型号删除",
"deviceModelInsert":"设备型号添加",
"deviceModelUpdate":"设备型号修改",
"setParams":"设置参数",
"timeShouldInOneHour":"时间间隔应在一小时内",
"wrongTime":"时间填写有误",
"realData":"实时数据",
"realDataSelect":"实时数据查询",
"confirmDeleteThisKnifeBroken":"是否删除该次设备撞刀报警",
"phone":"手机号",
"indexManager":"首页",
"index":"首页",
"indexSelect":"首页查询",
"data":"数据",
"dataComparison":"数据对比",
"dataComparisonSelect":"数据对比查询",
"dataManager":"数据管理",
"wrongNum":"数值填写有误",
"belongDepartment":"所属部门",
"belongFactory":"所属厂区",
"belongMonitoringPoint":"所属监测点",
"belongGroup":"所属组织",
"allData":"所有数据",
"belongFactoryArea":"所在厂区",
"belongFactoryAlarmMpointNum":"所在厂区报警监测点数",
"belongFactoryMPointNum":"所在厂区监测点总数",
"belongFactoryOfflineMPointNum":"所在厂区离线监测点数",
"belongFactoryOnlineMPointNum":"所在厂区在线监测点数",
"belongFactoryNormalMPointNum":"所在厂区正常监测点数",
"belongPlace":"所在地区",
"---------------t": "---------------t",
"condition":"条件",
"picUploadSuccess":"图片上传成功",
"picUploadFailed":"图片上传失败",
"signOut":"退出",
"fillError":"填写错误",
"---------------u": "---------------u",
"---------------v": "---------------v",
"---------------w": "---------------w",
"gatewayBindingSensor":"网关绑定传感器",
"gatewaySelect":"网关查询",
"gateway":"网关管理",
"gatewayType":"网关类型",
"gatewayName":"网关名称",
"gatewayDelete":"网关删除",
"gatewayInsert":"网关添加",
"gatewayUpdate":"网关修改",
"gatewaySN":"网关序列号",
"gatewayState":"网关状态",
"unDispose":"未处理",
"tempHumidTrend":"温湿度趋势",
"noUserInfo":"无法读取当前用户信息",
"---------------x": "---------------x",
"systemManager":"系统设置",
"min":"下限",
"nowKnifeTimes":"现刀头使用次数",
"nowKnifeTime":"现刀头使用时长",
"nowKnifeRunTimes":"现刀头运行次数",
"nowKnifeUsed": "现刀头已使用",
"nowKnifeRunTime":"现刀头运行时间",
"detail":"详情",
"detailAddress":"详细地址",
"projectNum":"项目编号",
"addDepartment":"新建部门",
"addFactoryLine":"新建产线",
"addSensor":"新建传感器",
"addSensorType":"新建传感器类型",
"addFactory":"新建工厂",
"addMonitoringPoint":"新建监测点",
"addMonitoringPointType":"新建监测点类型",
"addDeviceModel":"新建设备型号",
"addGateway":"新建网关",
"addUser":"新建用户",
"addWarn":"新建预警",
"newPassword":"新密码",
"add":"新增",
"addRole":"新增角色",
"modelName":"型号名称",
"update":"修改",
"updatePassword":"修改密码",
"modifyTime":"修改时间",
"num":"序号",
"selectSensor":"选择传感器",
"selectMonitoringPoint":"选择监测点",
"selectTime":"选择时间",
"---------------y": "---------------y",
"disposed":"已处理",
"selected":"已选择内容",
"userNo":"用户编号",
"userLogin":"用户登录",
"userRole":"用户角色",
"userName":"用户名",
"nickName":"用户昵称",
"userPhone":"用户手机号",
"userHeadImg":"用户头像",
"noLoginTips":"用户未登录,请先登录",
"userRealName":"用户姓名",
"userEmail":"用户邮箱",
"email":"邮箱",
"warnNo":"预警编号",
"warningSelect":"预警查询",
"warningExport":"预警导出",
"warning":"预警管理",
"warnName":"预警名称",
"warningDelete":"预警删除",
"warningInsert":"预警添加",
"warningUpdate":"预警修改",
"maybeUsed":"预计还可使用",
"run":"运行",
"---------------z": "---------------z",
"maximum":"最大值",
"minimum":"最小值",
"accountInfo":"账号信息",
"online":"在线",
"noData":"暂无数据",
"normal":"正常",
"linkingToSource":"正在进行资源连接…",
"toZh":"中",
"toEn":"英",
"statusChart":"状况统计图",
"state":"状态",
"knifeDispose":"撞刀处理",
"verticalContrast":"纵向对比",
"lastAlarmTime":"最近一次报警时间"
"-----------菜单-----------": "-----------菜单-----------",
"system": "系统管理",
"log": "登陆日志",
"operate": "操作日志",
"user": "后台用户管理",
"role": "角色管理",
"person": "个人设置",
"home": "首页",
"-----------常用-----------": "-----------常用-----------",
"signOut": "登出",
"num": "序号",
"startTime": "开始时间",
"endTime": "结束时间",
"search": "查询",
"allData": "所有数据",
"add": "新增",
"edit": "编辑",
"delete": "删除",
"remark": "备注",
"oper": "操作",
"description": "描述",
"permission": "权限",
"cancel": "取消",
"confirm": "确认",
"email": "邮箱",
"phone": "手机号码",
"-----------业务-----------": "-----------业务-----------",
"loginName": "登录名",
"userRealName": "用户姓名",
"loginTime": "登录时间",
"loginWay": "登录方式",
"loginInfo": "登录信息",
"userNo": "用户编号",
"userName": "用户名",
"nickName": "用户昵称",
"webPlatform": "web端",
"userRole": "用户角色",
"companyName": "公司名称",
"roleName": "角色名称",
"roleNo": "角色编号",
"addUser": "新增用户",
"editUser": "编辑用户",
"selectCompany": "选择公司",
"loginPassword": "登录密码",
"selectRole": "选择角色",
"userPhone": "用户手机",
"userEmail": "用户邮箱",
"userImg": "用户头像",
"editRole": "编辑角色",
"addRole": "新增角色",
"confirmDeleteThisRecord": "确认删除这条记录吗",
"loginOutValidityTips": "登录凭证失效,请重新登录",
"noLoginTips": "您尚未登录,请登录",
"wrongServerWithCode": "服务器异常,错误代码: ",
"wrongServer": "服务器异常, 请稍后再试"
}
@font-face {font-family: "iconfont";
src: url('iconfont.eot?t=1551691409347'); /* IE9 */
src: url('iconfont.eot?t=1551691409347#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAABTAAAsAAAAAJ9QAABRxAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCIRgq5SK4mATYCJAOBLAtYAAQgBYRtB4J8GxIhRUaGjQOAQH1UZP+fErghE6rh/SulqCChZRkko1t2a4p90Mzro2fVqW031Y4L4SGZj/olZim3Rbmn19XBBgt2sEkMBUi0LV0xf+EOjxlKSfC03/9m7+4XVUStkgiRhIckniBq8kgoVr3j8WASyhue32bvv48jBm2BAX4UowgrQNBmglXgOCtXxRJYpbhq1mUs05VzuCpd9N0RAGkOKF8AAfuT2VegtkxMN9bGW0W/+PxzEKQPCC+ESpqfw5v/0/VIuvIvHZs9jMBYHI5HxXDP/3vW57b7lAxPkWLX7XjFB+iiGnjp/CS/za+K8TZpsAIC+N5t5ECCzub2lVKM1dre3d/MiH+vU1c7uUwlXEnFV162DlPXXpdFX8avHxKEQXZIQSmEcglomKygXLRcIN6aqXh713Za1kKlnekRDx+7vSuRVPh/bNI+rMJpP3QzirIx7/r6JDQbt1Ta+/zlz4Sg0PpLSEdSgAkhICgJo5LG6PqIS5be19hprK5UryOuOr8+/YhWb6RSl2k3dPDwk5tIA/9cLSVZT08vCcdLkbEUhWp7ZE7aKHvepbLm+7suqRWLTSqaI+MaDpxwCfgLESlJOpUiesusbcxeswVeUGYbx4YtI1GKYZ2h1U0WW2ql9e9xu6UtnSFL3n/MA/r1ajZtzIyiMmzIIg2atFtsTr1Z3Vr16JO1WKjRuAmTBgya0mFUpxFdkjZ15i0g1YOqrVA14qLFBN4A+gkC0EsMBZoJMjBNUIAxggbMEHSgEAygIpjAMOEADBFOwCKCDTQQHKCJcAHaCVebvJFuAMwR7kA9wQVmCYzFO5IPQCvhCfQQXkAfIQAy4Q+0ECHAQiISaCQSWRCZBCyITAFgkkgFBog0YJBIB6aIYUAHkcmqZ6QKgE6iCBgh9EAXsQxIxFqgjS9jgDr+Aub5v44FYIl1kUOAh6DxMdDaRBPTTkelaFBJ2JpJIaOKetzgpSR5yUup1FlMYkbWk8AAbiQpWTPgZqxEEJWTVW255Dq/CTtqhr17jQVlDBMmC2NlzrNryqx57SI1WTEMP/QqPE1J1UW+0AIUkaMPFSC0bD6dcGgXKBCjR+rcnEZ6biC9qJvmeyITPrfJ7N2XZFl4wapwWMpzO/Xvv+u+lluxBFs0eSPnAF0hP4nno4Gxi/y9OHCRsRH2pkNFj5rzRq5f8L8GZOW36Ja7xCFXFaziSer0KfE3pRyxiIKV7ginoVSkXRFDhnB8CpLbu+mIrHamTY/uLo60HN2AzAWBxpwh0w3UdYMuKtGhLh4oCvioarOqyjTD3tzoOCciyVBKZgnmeYsRJEeAXOJa9NvCnfZW7RZ/M9dSJOSoReiv6HxuHewwKACVJSrlrDBEstzeKFYqXK0jYQv4AB9XYA61qdsOph0vBAkVOaxEz/igJEYqueh/LkeQWXGf3S14NyOtXLVrzHpOW/EmRX+uc9QUu4kNwG5DnAriLb4D7ErixGfR5fgOKGvM4z6FLgBI+Va6uX4HAOF2Gw0qVtGgkGs3Y6ja1hlWgvE4sEOGbnhTtJPTH8R3C4ARjAPgxJbD7OLElG9xHC04B+nyxAzPZmK+chsbTPuiu4BTrKgHvOycuj1S2dTYG24nMl2SGZEZcXf7LZSFb7p/2/76k/Ovj55YcePzSQdXu4JD3uRv1u0LGDnplM0Io/mf29NA6LrtIKkWVqusKsrUaQmFjnOho0fUiqXXSlTKSmVNrFdBzhfa5gKbPJPBjwsKFZ2uGbzZ31q3BauthSQdayrekGogCM/wTCve5jBEaUg2ltAptceQOUwwB3AlQarTXV9ZD1NQb8OVFg5YOxmDtRTWH3d8YUzGUSlg5maMKl9Lo3IcliY6v9TEdqLtdE6lmfqdJKm3oy/Z1/ZUAlfhTd1IgsrtgcdeesL/+ZGWzDicZ5xUFUUKxzzgxZcz5za7QjFJllU26Sa58iZZPT92M33d+w1euhUuOTif8ZxUn6wnXvhZKPojr4QgcfWzww51vE5nQfdD/k+8nW2g2nJ0gOEaghXlqFJJsTHQOCrwkWAVmoKMt9GgMT7po+bhch3j/WCBAw747B5JSd7GMiBJtnbW8VEabLYBNO6ZWqFET6+4394P6/UG/XFKCutxnV084S44922GptoAjd155UW3Wh36hshoy/fpbzdtggRRzQRZ+hwNX/WYPseVN1zkqq+QR5k8GRmHI8NoYA8eGF6Lhgb/GULbCzmYze1pYAA7xOPG8ViRD1eK4RGppLhie2Ai3W0ymJbrduWIe0phJ4yUE7WEwuZVdnxECs+sUmxad8ISJaonhejSy21FPSpED3iXarfXH3W+O6ZngI4eowP/jYYjssgSZEqsKkQxFw+U+CNRh/FZwmwkxkLIjiu6iZHIB5OR7CnA+GxPO04lzcEJeVFG8H3RdalC7hdtFig1ydabg2SkIIxGo9TbUjt5aijLz5zO05LBjzFJtQVrd81wlbZUM0qRbDcTeopYGFe5UfuKoJRrRw8fVmqYCUHF7WX7HC0v60BQUB6Xlaiqdpd63okfFk3dJwrgkRHgw6vHGMHLyD5nVRCcXvK4BYGG6O+aSwEnXZ5iP8yjKbz771ws817iJ3NK5p3jGwZixWwQ2mZC9i/9pDOtdhSRj+Z00rFCaEcQ3hE/yqSYt0A2dXGdVIrIGntnZTduv7Jxo6qVS+F0geHdWrt42Uqc9j+/sadJtxKbkG57c0aWGUatRnPK8sCFMwqiYkSVXctg/iGjSTWZPDZ2GmpmfF7JyNGgSQgT6/OpTn5hJRQ9nOKXZXYaHTaO8w104/Nrm+U6m1QrUavLn+VhkE/nwEXnh8fe4ADbs5v1zVc+LAKes01rDqs1ZEm7KzQ27faGrvILAu5XLQFQB49u8JFdRytt+aeGKe5VrKiSxI+Drj4mTMkm2lrtSwtb6jaP2D7jDKilhTk7+78qWEVOzXCGqgCA0lbSbCE6AEpiZpmdESzup4qYPkXHmtqRyvBvXzYdvXiT70TQ4G8tuRerCu4459kH98F6r0HlaquC+57PaeAU7t9/9RRdyHQRRbjj345eu4bibg8ELhwMEDH2AsIu/C5A8qyMgvNOnJiHG8ZtovOI/EqftXXIgoWwLlRQjIF1P4Vxs24OD9ASYN3HY17m/Dn6RtgXruutUO5sPwHXzm8IbzPT9SvX5XYoLvomqpnAc/R15Nn5+d5Y84vjpwZiPI46U5uabaJfYipYzOmTPFm4mEYTfRINNjXRtiHN1bWxCxld6tDQOepIQh+b+EruvA1AgqSGUAdiuiW3cBtjfgsANyoe9dztATxUWs9ncb29drWZw2ebjQaDsY0jZretWSvxAj4YiJIpUvQMMUNvVXDWpLAZEh9NShgz1SHs7+2C+CkU7eQxrfcDMCdZs7aNLea0GYxGg5nN55jXrq7EAFcn00L9JKQM0VSyFmpgpAYp2ykNBKFGOaTTE+HmjXA8K2Czw0TkKItsZgWx4Ph3sBMhAJu1srv3xOLtbtowdPm5C0vhMlgcupwEe34ZGqp1m83n371XEX0yxqmzAjEYYaXoxlcgaBRSiZgDvOe6Z8/OA5FsKIFZWoI95FzhKAwzq7GSEg+Jx8AAwgEuHxgSuUSB/XuAc2dKirG37EbOQ+w2ZEkYL15+KmGyRZ8GmGIWOP3tItPMg+8GzbxrvMvYeha2e1tYZ3cNmmkllWi7z4SMBLjN0wG8iCykoQHJskf+UZI530yyt3hb7JGsj26yEbB8EdrVhS5KWwZFaufNq003svGw9iPRHi765xaj7PRW9XfGHYM5C5rqkWE42JtgDjgqXcezAwsc1OumrPNwQBbYSR8BW0dTiqg+WcQGUSggM2/uIP4yZNTtyieqA6UpZWmhYPimw/lDPq5b14fPrysSGC00gu5lijRITSh41PtywdbevN4kt9E5P96K653WNivyXZMrZkyZEmwYuHsG2vX/tc5VIkKmiGk840+zn1GK3EOsEBTQXPkHqF7XhKmE8PqK7f1cc56JbsPrApDlPNOTPwPYSeqcxxIdxL263nr9Dx2Q6eSDxc4ZmyhHL0aXrwTR2mxFuC59Riuy2/Sgn2t8Wkvf/Yf7Zze9eUA4ABIPjuQZvYw8a9GIFiKXZRQYWRKzfCTP8LCOPB9DD7P3cW9v2mymlsfMwvKuW0e0kFBiZ2Ev+PE4GByPQDp95SUfRXccYqaDgAS/XUfpGWFMfYz+Tigr48FphX8AoJuRYQf8ko+a0uk5QkIMITZHyRx72D/5gBKauaJAhf/pt8z0pDv6aD0rlK68OFfuGyjimmFst4/iyGwlMyc2u1/h4ZcdajWZrFZ1dnbk/F01CPtswo00HG0VCB3r7px3Eo5yvl0cO/xy5e9r7lGW0SNL4nTPf25hr1+2hjt6KaW0vkJy0GNcZpb78BK7BKpsvK5VysoQecVGtnLH6R215BjlfnnKkmy3gTPGZznYrfVenm2/dOj9aOU+ObDZ7siDB2i6N2wImpEyuis4KhXHqCtUqgvK8i1WrfUMtw+gBXGQrlJRGdRd85tEaVKprMdNs6rS+FMBm+YJ8m8hTr7O9FjnFOJbzaci15l06rMZQSzaUZ2dIHcX1/8bcN2h1+rB+SXJrPTasXeXW8OuHewm5dcULqnePWUJx2mocnPmYiUR8yvww4QrCzzHDxH/O34c6QKssE8ex5q8y3LgUa8gJ9SlJF4antscmROROzTzf7ZKsIO8s0hXXq4r2tnhfU4L3y32vPqbNeJs5YsEJVs6c3wBLTcbndI3Y+2bTCbt5AzllHDles8zE9lZsZCv+ttKeRHqS/hU2JxnmFoK1jnuql8KoawwXwYSQNF8tYHj/5FNAblYJT0dblnmvOyI6wONy/cHnFfkzYOmwc3kV6QH3100gG0YPXrsWJl8/569+yoejMPG8bfemzRMSfQd3dqYsNkB/nJUKo7I+UmtJh9PjwBHIoEH+8mJNdBjd2Jzc0vL1ZXOhQTx6GpTfPunDytWfPgQbxXAfcU+Cj4e0JCtxPoEfT09//n8lyfXJwB/Qjg/YnyQAWQzGQp7ep76PM2T+ygAc2Zg5Wt/kTMcvXrNaEbCNWvKqsMlxWVhtaaHQfjFheeDGVlkLUWNlVNXneGyRrncHDNmfxtcY4Bhf20wpq2scsKcqioda7Q3HfgON6Gu7eb1rjEBJrkc6obGMBypWqojBtsBr/14pWyL9yhBl57nkTfYHWHuHhNgLLth11h/0yg/hprCeHHUcr7tAj0bt2MxR6HVh0EFVzok22gE93saRjIUGDjItNETVpD5SKKmNBkRXd0jiS6sxz2i2hg4YnW7JG9ktRmOjJXUP/9HjdRVI5nCoCzLBR0xF3mc9BjJJeouWILUIiSzvhpIOnyvpc74kBtpUg7vxPsbcEFHIrpBOT+LXDMHczFpy8WoZHLo5N5Fs0/i/v0dnyySrxd1HKUyXBlUKWg7SL2eFBMH47TZQGu7cY1tMNRk09pgbUdj0dcyiv0rnHKxtCHdsDnr14Sk4J+FxvBFgvVoFczFxaRIXxErih60eDIzHJcCTbxQaEF5qGUYDn5yukgI7Lgd3aouA1JQthhH3+4IJFxyDB4b9QCulDukZbiBPDE5mmER6gtULD6v55GekIwovXtnL/xmS14ks2bsmSlO8atu3TtSlvI3xXNmHpGYN9PzVF82ct20eLl9slNWBdjqpU5g9/dHsroWbso6QjtMtVSF2QnhWh0gzGepEFEUFSkQDyU7qYeMM9geCqSoCFGkslvhihWwVXQhsxkpczodqahAcKcHAhcOFnQt3O6yHSDbXdvjZOa9Cpf2EzJpvHnHSFggm2WpcF06hIpZi61id7EVIqZpBDQ+pZjKd+dTiyl8pqoVtrWVT4PMZuSfuDAMqalBMkGapioVv4OHpGi1KYg9a0CnMubRlkQiv+KbR3KTftxusShDLLEZsyeQmWGa5Qfw0ITTuP/+09OiQaaLKMJX6nx4+jTEPT9i56OiweiBxo+Y+8n3/127BnwGUrVy23lJ/exjJm1zD/jSUa4J4wYyAsGKNmHg+uF2dAwGDYIptv+t0ALUOnL781IAasslHy0DoHZaulA5AOTHaGLS0c+zFXULTjols1BZcmc+6cjIn1EdSL35FuwC3EWDJCQRLZr0JB9EA6a9Lg/RepXtfe2JOqEq8H6R1ygVwt/g9byspZP+yB50CF4X1Gp5OwHreVr1Uy7k56jyR46h8QCQidDNWaJaDU1c7UBRJqt3v/SjGbTC2AhGd6C8nDoAO6LCNtnaJCbBsf9frzfwvFMm1NBivhOG/vsv/+1G2iKE6pUcQV9HLo9GFS018T87rs4rYa23+uHEeMlzjTCG1s0dsaL2g0absKI6sEk+ZYlbLKlC83st/u+X0e1z/aL6Mtv/ExrVR6hKgzEqazRrLRFLqTot1lL1Gu2gmi1x4PItepyCSqUJi13YUUmnR1Sl3TOcoyLe4AIRn6g6/X656xk2U80OJVaQLdZ89795YARBZz5vJlmq3vGycav/wjAyMHLu+/uH3BNVc9juXyUvWJFpBOjncBTxxjMV87wzwJzJNKYTWtlGitv9bufPd7C1VCYbD4wg6IzPm7VoslT99mXz9fN/YRgZOKHV+6L/kHs6f+Nga5/B+kJqplZlUfdzOBKU5I3RkKkYzygJ89tLRovu6YRWtmIBqd3boeX5rGTLP6qML2LwtamZXHIGgSJGghQZchgC/sBqDgVKVOvNdrc/HP+X6fO+uLy6vrm9u394fHp+eX17//j8Mj8KQcdRkltlCqnSkJWjS70Au6XQrxSiqIJ1LIS+oJfFjWqIU+2OwDYuRkt1Z3OBsHB4ThZn7TIHa3WPUMP8mkDF4poz65myswu/N6xLjEVSDTrcmPpSEtRTr7uEDFz+trWDH/lLyoEAzZAzCupKqaOKVFChSzIbTckoaJaOzWLZcgl7bYesBEvTjbF3fRs3qGp0ZJ0zhmlhvyiUvJ9MAAA=') format('woff2'),
url('iconfont.woff?t=1551691409347') format('woff'),
url('iconfont.ttf?t=1551691409347') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1551691409347#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-mag:before {
content: "\e695";
}
.icon-humid:before {
content: "\e611";
}
.icon-loginout:before {
content: "\e626";
}
.icon-downward:before {
content: "\e610";
}
.icon-toRight:before {
content: "\e777";
}
.icon-menu:before {
content: "\e61e";
}
.icon-toLeft:before {
content: "\e619";
}
.icon-yonghu:before {
content: "\e639";
}
.icon-search:before {
content: "\e61a";
}
.icon-upward:before {
content: "\e60b";
}
.icon-tag:before {
content: "\e62b";
}
.icon-device:before {
content: "\e623";
}
.icon-pw:before {
content: "\e69f";
}
.icon-acc:before {
content: "\e61b";
}
.icon-shang:before {
content: "\e64e";
}
.icon-xia:before {
content: "\e650";
}
.icon-warn:before {
content: "\e680";
}
.icon-toFold:before {
content: "\e622";
}
.icon-toOpen:before {
content: "\e624";
}
.icon-setting:before {
content: "\e608";
}
.icon-gyros:before {
content: "\e625";
}
.icon-tianjia:before {
content: "\e607";
}
.icon-alarmUp:before {
content: "\e649";
}
.icon-alarmDown:before {
content: "\e64a";
}
.icon-data:before {
content: "\e615";
}
.icon-delete:before {
content: "\e612";
}
.icon-noise:before {
content: "\e65a";
}
.icon-home:before {
content: "\e64f";
}
.icon-edit:before {
content: "\e60d";
}
.icon-up:before {
content: "\e645";
}
.icon-down:before {
content: "\e646";
}
.icon-right:before {
content: "\e648";
}
.icon-left:before {
content: "\e64b";
}
.icon-alarm0:before {
content: "\e60c";
}
.icon-alarm:before {
content: "\e60f";
}
.icon-temp:before {
content: "\e61f";
}
.icon-press:before {
content: "\e61d";
}
.icon-yuyan:before {
content: "\f031";
}
.icon-user:before {
content: "\f2dc";
}
.icon-light:before {
content: "\e634";
}
.icon-left0:before {
content: "\e617";
}
.icon-right0:before {
content: "\e61c";
}
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="mag" unicode="&#59029;" d="M482.56 492.8l-286.08-241.152 363.904 0L854.208 492.8 482.56 492.8zM520.448 335.48800000000006c-20.416 0-36.928 16.512-36.928 36.928s16.512 36.992 36.928 36.992S557.44 392.832 557.44 372.41600000000005 540.864 335.48800000000006 520.448 335.48800000000006zM512 832C264.576 832 64 631.424 64 384c0-247.36 200.576-448 448-448s448 200.64 448 448C960 631.424 759.424 832 512 832zM512.896 16.063999999999965c-201.6 0-365.056 163.456-365.056 365.12 0 201.6 163.456 365.056 365.056 365.056s365.056-163.456 365.056-365.056C877.952 179.51999999999998 714.496 16.063999999999965 512.896 16.063999999999965z" horiz-adv-x="1024" />
<glyph glyph-name="humid" unicode="&#58897;" d="M784.818037 431.850821l0.688685-0.415462L521.206174 861.232149 256.923022 431.434336l0.734734 0.480954c-43.695175-56.418964-69.969585-127.013789-69.969585-203.88762 0-184.197162 149.322887-333.522096 333.518003-333.522096 184.213535 0 333.535399 149.324934 333.535399 333.522096C854.741573 304.88615100000004 828.483536 375.464603 784.818037 431.850821zM521.206174-27.306670000000054c-141.011594 0-255.334339 114.322745-255.334339 255.335363 0 70.080102 28.256554 133.515876 73.966619 179.657776l-0.063445 0 161.005974 248.52526 20.424168 33.035394 35.81674-63.209624 135.324058-208.890564c51.588959-46.715975 84.209914-114.016777 84.209914-189.118242C776.556886 87.016075 662.235165-27.306670000000054 521.206174-27.306670000000054zM480.100988 255.69377599999996c10.867512 12.145621 16.302291 27.966958 16.302291 47.468105 0 19.61064-4.924149 34.890648-14.784728 45.868677-9.860579 10.980076-23.573905 16.461927-41.154305 16.461927-18.331507 0-32.891108-5.960759-43.710524-17.900695-10.82044-11.93789-16.22145-28.0171-16.22145-48.267307 0-18.651802 5.113461-33.611515 15.343453-44.909839 10.227945-11.298324 23.861454-16.940834 40.914852-16.940834C454.799742 237.47380899999996 469.231429 243.546108 480.100988 255.69377599999996zM414.093645 269.11852999999996c-5.960759 7.465019-8.949836 18.059308-8.949836 31.804357 0 13.954827 3.067872 24.853038 9.188266 32.685423 6.121418 7.830339 14.464433 11.744485 25.012673 11.744485 10.339486 0 18.34788-3.755534 24.052812-11.266601 5.705955-7.511067 8.549723-18.140149 8.549723-31.884175 0-14.06432-2.907213-24.963555-8.710382-32.683377-5.8001-7.720845-14.031575-11.587919-24.691355-11.587919C428.207084 257.93072299999994 420.054403 261.653511 414.093645 269.11852999999996zM588.61954 238.91155400000002c-18.219967 0-32.729425-6.0416-43.550888-18.140149-10.819416-12.099572-16.223496-28.256554-16.223496-48.504714 0-18.331507 5.082762-33.211403 15.263635-44.671409 10.181897-11.45796 23.847128-17.180288 40.995693-17.180288 17.691941 0 32.012088 6.0416 42.993187 18.140149 10.980076 12.099572 16.46295 27.841092 16.46295 47.227628 0 20.024056-4.954849 35.561937-14.863523 46.588061S606.0884 238.91155400000002 588.61954 238.91155400000002zM611.394243 142.698259c-5.8001-7.782244-14.031575-11.665691-24.691355-11.665691-10.339486 0-18.492166 3.755534-24.452925 11.266601-5.960759 7.511067-8.949836 17.97949-8.949836 31.404244 0 13.954827 2.989077 24.853038 8.949836 32.683377 5.959735 7.832386 14.382569 11.747555 25.252127 11.747555 10.116405 0 18.092054-3.675716 23.892153-11.028171 5.803169-7.351432 8.710382-17.947767 8.710382-31.804357C620.103602 161.35006099999998 617.197412 150.48152600000003 611.394243 142.698259zM577.592392 361.815745L418.567539 112.652965 445.260481 112.652965 604.283288 361.815745Z" horiz-adv-x="1024" />
<glyph glyph-name="loginout" unicode="&#58918;" d="M962 440.25c0-16.875-5.625-28.125-16.875-39.375l0 0-112.5-112.5 0 0C821.375 277.125 810.125 271.5 793.25 271.5c-33.75 0-56.25 22.5-56.25 56.25 0 16.875 5.625 28.125 16.875 39.375l0 0L770.75 384 624.5 384C590.75 384 568.25 406.5 568.25 440.25c0 33.75 22.5 56.25 56.25 56.25l146.25 0-16.875 16.875 0 0C742.625 524.625 737 535.875 737 552.75c0 33.75 22.5 56.25 56.25 56.25 16.875 0 28.125-5.625 39.375-16.875l0 0 112.5-112.5 0 0C956.375 468.375 962 457.125 962 440.25zM793.25 721.5l-112.5 0L568.25 721.5 320.75 721.5l106.875-61.875 0 0C444.5 648.375 455.75 631.5 455.75 609l0-450 56.25 0 168.75 0 112.5 0c33.75 0 56.25-22.5 56.25-56.25s-22.5-56.25-56.25-56.25L512 46.5 455.75 46.5l0-56.25c0-33.75-22.5-56.25-56.25-56.25-11.25 0-22.5 5.625-28.125 11.25l0 0-281.25 168.75 0 0 0 0c-5.625 5.625-11.25 11.25-16.875 16.875 0 0 0 0 0 5.625C67.625 142.125 62 147.75 62 159L62 777.75c0 22.5 16.875 45 33.75 50.625C101.375 834 112.625 834 118.25 834l0 0 450 0 225 0c33.75 0 56.25-22.5 56.25-56.25C849.5 744 827 721.5 793.25 721.5z" horiz-adv-x="1024" />
<glyph glyph-name="downward" unicode="&#58896;" d="M42.14589595 836.48044497L516.63815226 364.88243101 986.2727947 835.98997031Z" horiz-adv-x="1024" />
<glyph glyph-name="toRight" unicode="&#59255;" d="M512 832c-247.039484 0-448-200.960516-448-448S264.960516-64 512-64 960 136.96051599999998 960 384 759.039484 832 512 832zM661.760516 360.032469l-160.25545-158.495686c-6.239161-6.14455-14.368821-9.247789-22.496761-9.247789-8.255235 0-16.512189 3.168606-22.751351 9.504099-12.416396 12.576374-12.320065 32.800753 0.25631 45.248112l137.407768 135.904314-136.287918 136.671523c-12.480043 12.512727-12.447359 32.768069 0.063647 45.248112 12.512727 12.512727 32.768069 12.447359 45.248112-0.063647l158.911974-159.359226c0.032684-0.032684 0.032684-0.063647 0.063647-0.096331s0.063647-0.032684 0.096331-0.063647c2.94326-2.975944 5.055665-6.431824 6.591802-10.047682 0.063647-0.127295 0.223626-0.25631 0.25631-0.383604C673.600645 383.232791 671.231931 369.407553 661.760516 360.032469z" horiz-adv-x="1024" />
<glyph glyph-name="menu" unicode="&#58910;" d="M932 324L92 324c-33 0-60 27-60 60 0 33 27 60 60 60l840 0c33 0 60-27 60-60C992 351 965 324 932 324zM932 676.5L92 676.5c-33 0-60 27-60 60 0 33 27 60 60 60l840 0c33 0 60-27 60-60C992 703.5 965 676.5 932 676.5zM92 91.5l840 0c33 0 60-27 60-60 0-33-27-60-60-60L92-28.5c-33 0-60 27-60 60C32 64.5 59 91.5 92 91.5z" horiz-adv-x="1024" />
<glyph glyph-name="toLeft" unicode="&#58905;" d="M64 384c0-247.039 200.961-448 448-448s448 200.961 448 448S759.039 832 512 832 64 631.039 64 384zM355.135 394.851c0.033 0.127 0.193 0.256 0.256 0.384 1.536 3.616 3.649 7.072 6.592 10.048 0.033 0.031 0.065 0.031 0.096 0.064s0.031 0.064 0.064 0.096l158.912 159.359c12.48 12.511 32.735 12.576 45.248 0.064 12.511-12.48 12.544-32.735 0.064-45.248L430.079 382.94500000000005l137.408-135.904c12.576-12.447 12.673-32.672 0.256-45.248-6.239-6.336-14.496-9.504-22.751-9.504-8.128 0-16.258 3.103-22.497 9.248L362.24 360.03200000000004C352.768 369.408 350.399 383.23299999999995 355.135 394.851z" horiz-adv-x="1024" />
<glyph glyph-name="yonghu" unicode="&#58937;" d="M502.496 832.864c125.888 0 227.936-100.384 227.936-224.192 0-123.84-102.048-224.224-227.936-224.224-125.888 0-227.936 100.384-227.936 224.224C274.56 732.512 376.64 832.864 502.496 832.864L502.496 832.864zM502.496 832.864c125.888 0 227.936-100.384 227.936-224.192 0-123.84-102.048-224.224-227.936-224.224-125.888 0-227.936 100.384-227.936 224.224C274.56 732.512 376.64 832.864 502.496 832.864L502.496 832.864zM417.024 309.696l189.984 0c162.624 0 294.432-129.632 294.432-289.6l0-18.656c0-63.04-131.84-65.44-294.432-65.44l-189.984 0c-162.624 0-294.432 0.096-294.432 65.44l0 18.656C122.592 180.064 254.4 309.696 417.024 309.696L417.024 309.696zM417.024 309.696" horiz-adv-x="1024" />
<glyph glyph-name="search" unicode="&#58906;" d="M933.602 64.52999999999997L721.175 278.73800000000006c-2.472 2.479-5.204 4.372-7.813 6.435 35.884 55.518 56.836 121.647 56.836 192.878 0 195.694-157.298 354.31-351.461 354.31-194.054 0-351.461-158.616-351.461-354.31 0-195.722 157.407-354.302 351.461-354.302 70.631 0 136.303 21.179 191.459 57.361 2.009-2.692 3.852-5.369 6.283-7.827l212.454-214.235c14.506-14.579 33.396-21.849 52.314-21.849 18.932 0 37.836 7.268 52.328 21.814C962.436-11.823999999999955 962.436 35.389999999999986 933.602 64.52999999999997M418.737 235.63c-132.562 0-240.468 108.767-240.468 242.421 0 133.634 107.907 242.428 240.468 242.428 132.561 0 240.467-108.794 240.467-242.428C659.204 344.398 551.298 235.63 418.737 235.63" horiz-adv-x="1024" />
<glyph glyph-name="upward" unicode="&#58891;" d="M525.8907641 866.55126823L43.00157475 383.6620789 1008.77777102 383.6620789Z" horiz-adv-x="1024" />
<glyph glyph-name="tag" unicode="&#58923;" d="M788.48 266.581333c0 17.066667-5.802667 31.744-17.749333 44.714667L421.205333 660.1386669999999c-12.288 12.288-29.354667 22.869333-49.834667 31.744-21.162667 8.874667-39.936 12.970667-57.002667 12.970667L110.933333 704.853333c-17.066667 0-31.744-6.485333-44.032-18.773333-12.288-12.288-18.773333-26.965333-18.773333-44.032l0-202.752c0-17.066667 4.096-36.522667 12.970667-57.002667 8.874667-21.162667 18.773333-37.546667 31.744-49.834667l349.525333-349.525333c12.288-12.288 26.965333-17.749333 44.032-17.749333 17.066667 0 31.744 5.802667 44.714667 17.749333l239.616 239.616C781.994667 234.83733299999994 788.48 249.51466700000003 788.48 266.581333L788.48 266.581333 788.48 266.581333zM248.490667 503.808c-12.288-12.288-26.965333-18.090667-44.032-18.090667-17.066667 0-31.744 5.802667-44.032 18.090667-12.288 12.288-18.090667 26.965333-18.090667 44.032 0 17.066667 5.802667 31.744 18.090667 44.032 12.288 12.288 26.965333 18.090667 44.032 18.090667 17.066667 0 31.744-5.802667 44.032-18.090667C260.778667 579.5840000000001 266.24 564.906667 266.24 547.8399999999999 267.264 530.432 260.778667 516.096 248.490667 503.808L248.490667 503.808 248.490667 503.808zM958.122667 311.637333L608.597333 660.1386669999999c-12.288 12.288-29.354667 22.869333-49.834667 31.744C537.6 700.757333 518.826667 704.853333 501.76 704.853333l-109.909333 0c17.066667 0 36.522667-4.096 57.002667-12.970667 21.162667-8.874667 37.546667-18.773333 49.834667-31.744l349.525333-348.501333c12.288-12.970667 18.090667-27.648 18.090667-44.714667s-5.802667-31.744-18.090667-44.032l-229.034667-229.717333c9.898667-9.898667 18.773333-17.066667 25.941333-21.845333 7.168-4.778667 17.066667-6.485333 28.672-6.485333 17.066667 0 31.744 5.802667 44.714667 18.090667l239.616 240.298667c12.288 12.288 17.749333 26.965333 17.749333 44.032S970.069333 298.325333 958.122667 311.637333L958.122667 311.637333 958.122667 311.637333zM958.122667 311.637333" horiz-adv-x="1024" />
<glyph glyph-name="device" unicode="&#58915;" d="M66.133721 12.892890999999963c0-41.215704 33.384341-74.607208 74.607208-74.607208l746.078223 0c41.215704 0 74.606185 33.391505 74.606185 74.607208L961.425338 218.06782999999996c0 41.215704-33.390481 74.607208-74.606185 74.607208L662.993434 292.675038 662.993434 488.516402c0 25.739221-20.888749 46.635133-46.62797 46.635133-25.738198 0-46.62797-20.895913-46.62797-46.635133l0-195.841364L140.74093 292.675038c-41.215704 0-74.607208-33.391505-74.607208-74.613348L66.133721 12.892890999999963 66.133721 12.892890999999963 66.133721 12.892890999999963zM159.390685 115.48138400000005c0 25.738198 20.890796 46.630017 46.635133 46.630017 25.737174 0 46.626947-20.891819 46.626947-46.630017s-20.889773-46.632063-46.626947-46.632063C180.281481 68.848297 159.390685 89.742163 159.390685 115.48138400000005L159.390685 115.48138400000005zM327.260997 115.48138400000005c0 25.738198 20.888749 46.630017 46.62797 46.630017 25.738198 0 46.63411-20.891819 46.63411-46.630017s-20.895913-46.632063-46.63411-46.632063C348.149746 68.848297 327.260997 89.742163 327.260997 115.48138400000005L327.260997 115.48138400000005 327.260997 115.48138400000005zM616.364441 684.365952c-108.182908 0-195.841364-87.666642-195.841364-195.84955 0-25.738198 20.888749-46.62797 46.62797-46.62797 25.740244 0 46.62797 20.889773 46.62797 46.62797 0 56.704466 45.886073 102.585423 102.59054 102.585423 56.69935 0 102.579283-45.880957 102.579283-102.585423 0-25.738198 20.894889-46.62797 46.63411-46.62797 25.738198 0 46.62797 20.889773 46.62797 46.62797C812.212968 596.69931 724.547349 684.365952 616.364441 684.365952L616.364441 684.365952 616.364441 684.365952zM616.364441 833.578322c-190.620455 0-345.060897-154.439418-345.060897-345.06192 0-25.738198 20.888749-46.62797 46.63411-46.62797 25.739221 0 46.62797 20.889773 46.62797 46.62797 0 139.145084 112.655779 251.798816 251.797793 251.798816S868.163257 627.661486 868.163257 488.516402c0-25.738198 20.895913-46.62797 46.63411-46.62797 25.739221 0 46.62797 20.889773 46.62797 46.62797C961.425338 679.138904 807.003316 833.578322 616.364441 833.578322L616.364441 833.578322 616.364441 833.578322zM616.364441 833.578322" horiz-adv-x="1024" />
<glyph glyph-name="pw" unicode="&#59039;" d="M798.362518 449.112973l-62.74095 0 0.188288 184.847985c0 109.983927-114.233718 199.095477-255.462253 199.095477-141.042293 0-255.462253-89.11155-255.462253-199.095477l-1.188058-184.847985-64.11525 0c-35.30611 0-62.49024-28.464285-62.49024-55.991222l-1.375324-399.971507c0-27.495214 29.933753-55.991222 65.240887-55.991222l638.905318 0c35.183314 0 62.364373 28.496008 62.364373 55.991222l1.375324 399.971507C863.602382 420.647665 833.545832 449.112973 798.362518 449.112973zM606.764805 449.112973L351.678106 449.112973 351.678106 641.084193c0 54.866608 58.366316 92.453668 128.669498 92.453668 70.364581 0 127.292128-37.586037 127.292128-92.453668L606.764805 449.112973z" horiz-adv-x="1024" />
<glyph glyph-name="acc" unicode="&#58907;" d="M928.49201844 767.65923937c-1.50234187 17.78634094-15.67385344 31.85999906-33.46786875 33.23858438-229.91771625 17.8870725-395.52159656-93.38884219-497.83526813-233.92779656-56.54694094 18.52599937-117.25266281 11.924715-172.61192906-19.26661688-53.32448625-30.03723469-98.74489125-80.64772125-127.89184969-142.50945844-6.67707281-14.16671531-3.54767438-31.01960906 7.77456844-41.84394937 11.32224375-10.82817844 28.30273031-13.19777156 42.14902313-5.88944719 58.30351031 30.73947844 123.94988156 24.95172281 163.36955531-14.41614562L470.50141625 182.69584406c0.28972312-0.31082906 0.49118719-0.66866625 0.79434188-0.97086187 39.38417719-39.34196625 45.18152719-104.88376875 14.42478-163.0865475-7.31695875-13.84725188-4.96079625-30.82390125 5.85395062-42.15573844 7.03299188-7.36492688 16.61209688-11.2723575 26.35141406-11.2723575 5.24092687 0 10.52694281 1.12915406 15.48773907 3.45845531 61.92121781 29.11721813 112.58254875 74.490615 142.65431999 127.75945875 31.41198281 55.64419313 37.94131594 116.69528062 18.98169 173.49069375 41.28944531 29.6352675 78.25030594 63.03790031 109.29869532 99.27637031C899.66164531 480.44533031 941.43268438 614.50771594 928.49201844 767.65923937zM215.32786344 449.78164031c38.739495 38.68097437 88.4625825 61.78594875 140.25978375 52.69515282-14.26552781-25.14647062-26.64977156-50.69874656-37.22084438-76.19058282C287.37117875 442.97025844 251.90114656 451.08155906 215.32786344 449.78164031zM578.0512175 87.19451437999999c1.28073188 36.93016125-6.99269906 72.66689156-23.99045438 103.82464687 26.438715 11.21287781 52.02360844 23.87533219 76.570485 37.7763075C640.43292219 176.52434812 617.19363875 126.26690343999996 578.0512175 87.19451437999999zM506.03476437 250.14387468999996L377.6747525 378.36574031c64.33014375 172.3116525 224.1040575 356.43002062 480.04125188 351.45003657C866.31753312 424.81168969 614.4882725 292.70445844000005 506.03476437 250.14387468999996zM741.30469156 612.96987844c11.01621094-11.02004813 17.29707281-26.31208031 17.29707281-41.880405 0-15.56736563-6.28086188-30.774975-17.29707281-41.79022594-11.01525187-11.01621094-26.31112125-17.38629187-41.87848594-17.38629188-15.56736563 0-30.76921875 6.37008094-41.78446968 17.38629188-11.01525187 11.01621094-17.39012906 26.22382031-17.39012907 41.79022594 0 15.56832469 6.37487813 30.86035687 17.39012907 41.880405 10.92123562 11.01621094 26.217105 17.29707281 41.78446968 17.29707281C714.99452938 630.2669512499999 730.29039875 623.9860893800001 741.30469156 612.96987844zM228.64171719 234.83937093999998c-41.85162469-41.81325094-43.49211281-125.552955-43.39809563-141.79666219 0.11991844-19.94583656 16.25617875-36.79297406 36.20201532-36.79297406 0.35975625 0 0.75117094 0 1.17808125 0 18.7495275 0 99.21209437 3.06320344 140.12931187 43.92957562 25.83528375 25.81034063 31.25944594 52.14064875 31.25944594 69.43772157-0.00479719 24.24084469-10.41086156 48.13440469-29.31580406 67.01824125C318.60759969 282.66678375000004 261.86878906 268.02806906 228.64171719 234.83937093999998zM311.28200656 152.29789405999998c-8.96704031-8.95744688-29.10762469-15.04739812-49.66648594-18.51928406 3.56014594 20.73346313 9.77001563 40.81264875 18.49721907 49.53025875 5.94796687 5.93933344 11.614845 9.91391813 17.75851968 9.91391813 4.72479656 0 9.73068281-2.35136531 15.35822719-7.97027626 5.0548125-5.05001625 7.95204844-10.642065 7.95204844-15.34479656C321.181535 163.52228344000002 315.7938275 156.80491781 311.28200656 152.29789405999998z" horiz-adv-x="1024" />
<glyph glyph-name="shang" unicode="&#58958;" d="M83.33333333-24.66666667000004L1240.47619085-24.66666667000004 661.90476165 875.33333333 83.33333333-24.66666667000004Z" horiz-adv-x="1317" />
<glyph glyph-name="xia" unicode="&#58960;" d="M83.33333333 875.33333333L1240.47619085 875.33333333 661.90476165-24.66666667000004 83.33333333 875.33333333Z" horiz-adv-x="1317" />
<glyph glyph-name="warn" unicode="&#59008;" d="M572.074667 558.865067a57.275733 57.275733 0 1 1-114.176 6.007466h-0.170667l12.936533-272.896v-0.443733a44.544 44.544 0 1 1 89.019734 1.194667l12.424533 266.1376z m-196.949334 191.214933c76.151467 130.048 199.816533 129.774933 275.797334 0l340.3776-581.085867c76.117333-130.048 15.7696-235.4176-135.236267-235.4176H169.984c-150.8352 0-211.217067 105.6768-135.202133 235.4176L375.125333 750.08z m140.049067-687.581867a57.275733 57.275733 0 1 1 0 114.517334 57.275733 57.275733 0 0 1 0-114.517334z" horiz-adv-x="1024" />
<glyph glyph-name="toFold" unicode="&#58914;" d="M70.18202774 693.37324388h883.909351c24.40359987 0 44.18690634 19.78330646 44.18690635 44.18690634s-19.78330646 44.18690634-44.18690635 44.18690632H70.18202774c-24.40359987 0-44.18690634-19.78330646-44.18690634-44.18690632s19.78330646-44.18690634 44.18690634-44.18690634zM954.09137874 429.33438506H410.58138406c-24.40359987 0-44.18690634-19.78330646-44.18690632-44.18690634s19.78330646-44.18690634 44.18690632-44.18690633h543.50999468c24.40359987 0 44.18690634 19.78330646 44.18690635 44.18690633s-19.78330646 44.18690634-44.18690635 44.18690634zM954.09137874 74.96506211999997H70.18202774c-24.40359987 0-44.18690634-19.78330646-44.18690634-44.18690633s19.78330646-44.18690634 44.18690634-44.18690635h883.909351c24.40359987 0 44.18690634 19.78330646 44.18690635 44.18690635s-19.78330646 44.18690634-44.18690635 44.18690633zM245.53638469 605.49515306l-220.93453169-220.93453168 220.93453169-220.93453169z" horiz-adv-x="1024" />
<glyph glyph-name="toOpen" unicode="&#58916;" d="M70.18202774 693.37324388h883.909351c24.40359987 0 44.18690634 19.78330646 44.18690635 44.18690634s-19.78330646 44.18690634-44.18690635 44.18690632H70.18202774c-24.40359987 0-44.18690634-19.78330646-44.18690634-44.18690632s19.78330646-44.18690634 44.18690634-44.18690634zM70.16960017 340.95919155h543.50999468c24.40359987 0 44.18690634 19.78330646 44.18690632 44.18690633s-19.78330646 44.18690634-44.18690632 44.18690635H70.16960017c-24.40359987 0-44.18690634-19.78330646-44.18690634-44.18690635s19.78330646-44.18690634 44.18690634-44.18690633zM954.09137874 74.96506211999997H70.18202774c-24.40359987 0-44.18690634-19.78330646-44.18690634-44.18690633s19.78330646-44.18690634 44.18690634-44.18690635h883.909351c24.40359987 0 44.18690634 19.78330646 44.18690635 44.18690635s-19.78330646 44.18690634-44.18690635 44.18690633zM778.72597506 163.62608968999996l220.93453168 220.93453169-220.93453168 220.93453168z" horiz-adv-x="1024" />
<glyph glyph-name="setting" unicode="&#58888;" d="M932.11733333 473.5776h-0.00213333l-76.58346667 17.008c-5.96693333 19.0592-13.74613333 37.3312-22.7456 54.90453333l41.43893334 68.9792c15.47626667 24.74666667 23.25653333 61.1008 0 84.40426667l-42.2272 42.18346667c-11.3728 11.42186667-26.66026667 16.21973333-42.09173334 16.21973333-15.984 0-32.16106667-5.22133333-44.22933333-13.6096L678.50666667 700.88106667c-17.43253333 9.04213333-35.6096 16.77973333-54.53333334 22.93226666l-17.19573333 77.4624c-5.1264 28.43093333-29.97333333 59.19146667-62.9216 59.19146667h-59.6608c-32.9568 0-53.136-31.22773333-59.6608-59.65866667l-19.16053333-76.52906666c-20.17813333-6.432-39.6192-14.6784-58.07466667-24.42346667l-68.84053333 43.81333333c-12.1184 8.38933333-28.2464 13.6096-44.27946667 13.6096-15.38133333 0-30.6688-4.7968-42.09066667-16.21973333l-42.1792-42.18346667c-23.30453333-23.3024-15.47413333-59.65866667 0-84.4032l43.5776-72.61653333c-8.1536-16.50026667-15.42506667-33.4656-21.01866666-51.26826667l-76.53333334-17.00906666c-28.43093333-5.1328-59.19466667-29.97226667-59.19466666-62.928v-59.65866667c0-32.94826667 31.2288-53.13386667 59.6608-59.65866667l77.50933333-19.33866666c5.36426667-16.45653333 12.02453333-32.2528 19.62666667-47.54026667l-43.6256-72.70933333c-15.4752-24.7008-23.2608-61.056 0-84.35946667l42.2272-42.18453333c11.37386667-11.4176 26.66026667-16.26453333 42.08533333-16.26453334 15.9904 0 32.16106667 5.22026667 44.23573333 13.60853334l68.98346667 43.99893333c18.59413333-9.83146667 38.12693333-18.17706667 58.448-24.60906667l19.11146667-76.34453333c6.52586667-28.42986667 26.704-59.65973333 59.6608-59.65973333h59.66186666c32.94933333 0 57.79626667 30.76266667 62.9216 59.19253333l17.1968 77.69386667c18.736 6.064 36.72853333 13.70986667 53.9296 22.60693333l67.30666667-42.87893333c12.0672-8.3904 28.2464-13.61066667 44.22933333-13.61066667 15.43146667 0 30.72 4.84906667 42.09173334 16.26453333l42.2272 42.18453334c23.25653333 23.30346667 15.47626667 59.65866667 0 84.3616l-41.48266667 69.07413333c8.34026667 16.40533333 15.56906667 33.4624 21.392 51.1744l77.51573333 19.3408c28.432 6.52266667 59.6608 26.70826667 59.6608 59.65866667v59.65866666c-0.0032 32.95253333-30.76373333 57.79306667-59.1968 62.92586667zM514.86293333 238.90239999999994c-79.56586667 0-144.3552 64.59946667-144.3552 143.9264s64.78826667 143.8816 144.3552 143.8816c79.56053333 0 144.30613333-64.55466667 144.30613334-143.8816s-64.7456-143.9264-144.30613334-143.9264z" horiz-adv-x="1024" />
<glyph glyph-name="gyros" unicode="&#58917;" d="M878.933333 392.533333c-4.266667 153.6-104.533333 292.266667-256 341.333334l4.266667 17.066666c2.133333 8.533333-2.133333 19.2-12.8 21.333334-8.533333 2.133333-19.2-2.133333-21.333333-12.8l-4.266667-17.066667C435.2 776.533333 277.333333 706.133333 198.4 576c-59.733333-14.933333-98.133333-40.533333-108.8-78.933333-10.666667-38.4 10.666667-81.066667 55.466667-121.6 4.266667-153.6 104.533333-292.266667 256-341.333334l-4.266667-17.066666c-2.133333-8.533333 2.133333-19.2 12.8-21.333334 8.533333-2.133333 19.2 2.133333 21.333333 12.8l4.266667 17.066667c155.733333-34.133333 311.466667 36.266667 392.533333 168.533333 59.733333 14.933333 98.133333 40.533333 108.8 78.933334 8.533333 34.133333-12.8 76.8-57.6 119.466666zM614.4 699.733333c125.866667-40.533333 211.2-151.466667 228.266667-275.2-51.2 38.4-121.6 74.666667-200.533334 102.4L608 405.333333c49.066667-21.333333 76.8-46.933333 72.533333-66.133333-6.4-25.6-78.933333-29.866667-166.4-10.666667l100.266667 371.2z m-34.133333 8.533334l-100.266667-371.2c-85.333333 25.6-145.066667 64-138.666667 91.733333 4.266667 19.2 42.666667 25.6 96 21.333333l32 121.6c-85.333333 14.933333-162.133333 19.2-226.133333 10.666667 78.933333 102.4 209.066667 153.6 337.066667 125.866667z m-170.666667-640c-125.866667 40.533333-211.2 151.466667-228.266667 275.2 64-49.066667 157.866667-93.866667 268.8-123.733334l-40.533333-151.466666z m34.133333-8.533334l40.533334 151.466667c110.933333-27.733333 213.333333-36.266667 294.4-25.6-76.8-102.4-206.933333-153.6-334.933334-125.866667z" horiz-adv-x="1024" />
<glyph glyph-name="tianjia" unicode="&#58887;" d="M512 768a384 384 0 1 0-384-384 384 384 0 0 0 384 384m0 96a480 480 0 1 1 480-480A480 480 0 0 1 512 864zM752 432H272v-96h480V432zM560 624H464v-480h96V624z" horiz-adv-x="1024" />
<glyph glyph-name="alarmUp" unicode="&#58953;" d="M991.92874 528.0328079999999H655.987653V863.996472A32.037394 32.037394 0 0 1 623.995414 896H32.07126A32.037394 32.037394 0 0 1 0.067732 863.996472v-592.014463a32.037394 32.037394 0 0 1 32.003528-31.992239h335.91851v-335.974954a32.037394 32.037394 0 0 1 32.003527-31.992239h591.935443a32.026105 32.026105 0 0 1 31.992239 31.992239V496.02928a32.037394 32.037394 0 0 1-31.992239 32.003528z m-0.045155-624.017992H399.993297V239.98977000000002h224.002117a32.026105 32.026105 0 0 1 31.992239 31.992239V496.02928h335.941087l-0.045155-592.014464z" horiz-adv-x="1024" />
<glyph glyph-name="alarmDown" unicode="&#58954;" d="M991.92874 528.0328079999999H655.998942V863.996472A32.037394 32.037394 0 0 1 624.006703 896H32.07126A32.037394 32.037394 0 0 1 0.067732 863.996472v-592.003175a32.037394 32.037394 0 0 1 32.003528-31.992239h335.929798v-335.986242a32.037394 32.037394 0 0 1 32.003528-31.992239H991.940029a32.026105 32.026105 0 0 1 31.992239 31.992239V496.02928a32.059971 32.059971 0 0 1-32.003528 32.003528z m-0.045155-624.017992H400.004586V496.02928l224.013405-0.022577 0.225775 0.022577H991.940029l-0.056444-592.014464z" horiz-adv-x="1024" />
<glyph glyph-name="data" unicode="&#58901;" d="M512 96c-247.42 0-448 71.63-448 160v-160c0-88.37 200.58-160 448-160s448 71.63 448 160V256c0-88.37-200.58-160-448-160zM512 288c-247.42 0-448 71.63-448 160v-160c0-88.37 200.58-160 448-160s448 71.63 448 160V448c0-88.37-200.58-160-448-160zM512 480c-247.42 0-448 71.63-448 160v-160c0-88.37 200.58-160 448-160s448 71.63 448 160V640c0-88.37-200.58-160-448-160zM64 672a448 160 0 1 1 896 0 448 160 0 1 1-896 0Z" horiz-adv-x="1024" />
<glyph glyph-name="delete" unicode="&#58898;" d="M512-96a480 480 0 1 0 480 480 480.552 480.552 0 0 0-480-480z m0 864a384 384 0 1 1 384-384A384.432 384.432 0 0 1 512 768z m192-432H320v96h384v-96z" horiz-adv-x="1024" />
<glyph glyph-name="noise" unicode="&#58970;" d="M711.44638365 148.07189400000004c-3.023009 26.406877-11.825302 52.102457-23.206043 76.019797-3.734306 7.913172-7.913172 15.737432-12.269862 23.383867-15.559608 27.473821-34.408961 53.08049-53.613962 77.975862-27.918382 36.187202-57.792828 70.95181-89.534428 103.849266-34.942433 36.276114-72.196579 70.50725-112.562646 100.648433-37.43197 27.918382-78.153686 52.991578-122.520795 68.284449-27.651645 9.513589-70.240514 22.316923-99.225841 8.090996-6.401667-3.111922-12.092038-7.646436-16.893288-13.781367-7.290788-9.424677-13.514631-19.560649-18.938265-30.141183-17.604585-34.497873-25.873405-73.263523-27.829469-111.762438-2.578449-52.458105 6.312755-105.005123 20.89433-155.329339 14.403751-42.411045 35.475905-81.354519 62.771902-115.585656L140.89780365-86.47807599999999H106.66666665v-41.521924h344.089607v41.521924h-33.608753l-49.61292 156.66302c59.926717-23.828428 130.789615-35.120257 212.855431-29.785534 46.234262 4.089954 92.913085 22.050187 123.498828 58.148476 11.025093 12.981158 9.335765 33.608752 7.557524 49.524008zM256.92801965 138.55830500000002l-39.299123-53.613962 20.89433 71.752019c5.957107-6.223843 12.003126-12.269862 18.404793-18.138057zM266.97508065 20.483112000000006l-43.389077 29.074238 43.389077 59.215421V20.483112000000006z m28.451853 84.555353l45.789703-58.859773-45.789703-29.340974v88.200747z m-35.298081-110.873318l-84.733177-54.325258 27.118173 92.913085 57.615004-38.587827z m6.846228-26.051228v-54.680907H181.70843065l85.26665 54.680907z m28.451853 2.400625l84.999914-56.99262h-84.999914v56.99262z m11.469654 23.206043l48.190327 30.852479 25.428845-80.287575-73.619172 49.435096z m369.340627 121.987323c-40.188243-40.188243-177.290614 31.652687-306.124164 160.486238s-200.674481 265.847009-160.486238 306.124164c40.188243 40.188243 177.290614-31.652687 306.124164-160.486238s200.674481-265.847009 160.486238-306.124164zM559.67352565 895.644352L412.79083065 346.612486 617.64417865 852.699835zM637.82721165 737.203091L440.53138865 377.642789l229.393071 323.728749zM747.90032165 727.333854L427.46131765 336.921073l378.765304 344.978727zM789.86680565 596.0996789999999L449.51150465 336.20977700000003l384.633498 222.546844zM966.71285965 398.892767l-489.105149-79.576278 531.338369 15.559607zM819.91907565 468.421985L486.23217865 339.766259l312.081271 78.064773 26.406877 50.502041zM862.33012065 276.19414800000004l-381.521577 26.051228 339.555093-61.971694zM771.46201265 188.52687300000002L479.20812665 269.703569l252.243467-114.4298zM461.15898265 896L407.27828465 342.34470799999997 398.12034365 836.517843zM307.78570765 723.955197l87.400539-391.568638L264.66336765 681.988712z" horiz-adv-x="1024" />
<glyph glyph-name="home" unicode="&#58959;" d="M672.50215625 23.319455319999975H244.04843469v0.12799218h108.21736218v147.19097157c0 1.0239375 0.31998 1.91988188 0.31998094 2.87982375A159.54221437 159.54221437 0 0 0 512.38397656 329.41268125a159.54221437 159.54221437 0 0 0 159.86219532-155.89443843c0-0.95994094 0.25598438-1.91988188 0.25598437-2.87982375v-147.31896375z m301.35751594 529.69551187L872.68187844 618.67493969V745.83514094c0 21.8866575-17.91890062 39.67756688-40.06154344 39.67756594a39.80555813 39.80555813 0 0 1-39.99754688-39.67756594V670.51176063L534.33462969 838.18147657A39.48557813 39.48557813 0 0 1 511.68002 843.94112407a39.29359031 39.29359031 0 0 1-22.01464969-5.7596475L50.14032781 552.95097063a39.4215825 39.4215825 0 0 1-11.51929406-54.90863156 40.31752687 40.31752687 0 0 1 55.35660469-11.4552975l18.11088937 11.7752775v-486.81814219c0-37.24571531 33.98191594-67.57985531 75.7713525-67.57985438h649.04819157c41.78943656 0 75.7713525 30.33413906 75.77135343 67.57985438V497.91434688l17.34293625-11.26330969a40.31752687 40.31752687 0 0 1 55.42060032 11.51929406 39.35758594 39.35758594 0 0 1-11.58328969 54.84463594z" horiz-adv-x="1024" />
<glyph glyph-name="edit" unicode="&#58893;" d="M537.83984375 647.671875c79.89257813-79.8046875 158.5546875-158.29101563 239.94140625-239.50195313-2.63671875-1.58203125-6.6796875-3.07617188-9.4921875-5.88867187-119.09179688-117.7734375-238.27148438-235.45898438-356.66015625-353.84765625-15.46875-15.46875-32.08007813-25.3125-52.99804688-31.20117188-81.2109375-23.02734375-162.15820313-47.28515625-243.19335937-71.01562499-18.10546875-5.2734375-32.25585938-0.52734375-41.30859375 13.53515625-5.9765625 9.140625-5.9765625 19.3359375-3.07617188 29.35546875 25.92773438 88.59375 51.85546875 177.1875 78.13476563 265.69335937 1.93359375 6.41601563 5.9765625 12.91992188 10.72265625 17.578125 123.48632813 122.43164063 247.1484375 244.6875 370.72265625 366.94335938 2.72460938 2.72460938 5.00976563 5.80078125 7.20703125 8.34960937zM207.546875 216.56835937000005c-1.23046875-3.69140625-2.19726563-6.328125-2.98828125-9.05273437-10.98632813-37.08984375-20.56640625-74.70703125-33.31054688-111.18164063-6.6796875-18.984375-4.83398438-32.43164063 11.77734375-43.68164062 3.07617188-2.109375 5.71289063-5.00976563 7.99804688-7.99804687 3.60351563-4.74609375 7.64648438-4.83398438 13.0078125-3.25195313 30.32226563 9.140625 60.8203125 18.01757813 91.23046875 26.98242188 15.20507813 4.48242188 30.41015625 8.87695313 46.7578125 13.7109375-2.54882813 2.90039063-3.95507813 5.18554688-5.88867188 6.59179687-12.48046875 9.05273438-18.10546875 21.09375-16.96289062 36.5625 0.43945313 5.80078125-0.3515625 11.6015625-0.703125 17.49023438-0.96679688 16.171875-2.02148438 32.34375-3.07617188 48.8671875-22.23632813 1.84570313-43.41796875 4.04296875-64.59960937 5.09765625-15.46875 0.79101563-30.05859375 2.37304688-39.55078125 16.78710937-0.52734375 0.96679688-1.66992188 1.49414063-3.69140625 3.07617188z m0 1e-8M894.76367188 542.73046875c-75.5859375 75.41015625-150.99609375 150.8203125-227.19726563 226.93359375 18.36914063 16.69921875 33.13476563 38.49609375 57.21679688 50.09765625 29.00390625 13.97460938 65.12695313 7.3828125 90.87890624-17.9296875 37.35351563-36.82617188 74.61914063-73.74023438 111.26953125-111.35742188 33.83789063-34.71679688 33.31054688-81.5625-0.43945312-116.27929687-10.546875-10.8984375-21.4453125-21.26953125-31.72851563-31.46484375z m-1e-8 0M863.9140625 498.08203125c-16.96289063-15.90820313-34.62890625-32.43164063-51.85546875-48.515625-79.27734375 79.27734375-158.02734375 158.02734375-237.3046875 237.21679688 17.40234375 16.25976563 34.98046875 32.78320313 51.76757813 48.60351562 79.27734375-79.1015625 158.02734375-157.8515625 237.39257812-237.3046875z m0 0" horiz-adv-x="1024" />
<glyph glyph-name="up" unicode="&#58949;" d="M261.24 243.91999999999996l2.68-2.68a48.24 48.24 0 0 1 68 0L512 421.29l180-180.05a48.24 48.24 0 0 1 68 0l2.68 2.68a48.24 48.24 0 0 1 0 68L548 526.76a53.19 53.19 0 0 1-71.9 0L261.24 311.95000000000005a48.24 48.24 0 0 1 0-68.03z" horiz-adv-x="1024" />
<glyph glyph-name="down" unicode="&#58950;" d="M762.76 524.0799999999999l-2.68 2.68a48.24 48.24 0 0 1-68 0l-180-180-180 180a48.24 48.24 0 0 1-68 0l-2.68-2.68a48.24 48.24 0 0 1 0-68l214.65-214.84a53.19 53.19 0 0 1 71.9 0L762.76 456a48.24 48.24 0 0 1 0 68.08z" horiz-adv-x="1024" />
<glyph glyph-name="right" unicode="&#58952;" d="M371.92 634.76l-2.68-2.68a48.24 48.24 0 0 1 0-68L549.29 384l-180-180a48.24 48.24 0 0 1 0-68l2.68-2.68a48.24 48.24 0 0 1 68 0L654.76 348a53.19 53.19 0 0 1 0 71.9L440 634.76a48.24 48.24 0 0 1-68.08 0z" horiz-adv-x="1024" />
<glyph glyph-name="left" unicode="&#58955;" d="M652.08 133.24l2.68 2.68a48.24 48.24 0 0 1 0 68l-180 180 180 180.08a48.24 48.24 0 0 1 0 68l-2.68 2.68a48.24 48.24 0 0 1-68 0L369.24 419.95a53.19 53.19 0 0 1 0-71.9l214.81-214.81a48.24 48.24 0 0 1 68.03 0z" horiz-adv-x="1024" />
<glyph glyph-name="alarm0" unicode="&#58892;" d="M232.475 43.84500000000003h560.85V324.27c0 154.875-125.55 280.5-280.425 280.5s-280.5-125.565-280.5-280.5z m80.13 280.425a200.31 200.31 0 1 0 400.605 0v-200.295H312.605z m199.185 359.82c22.125 0 40.065 14.355 40.065 32.055v96.15c0 17.7-18 32.04-40.065 32.04s-40.065-14.34-40.065-32.04v-96.15c0-17.7 17.94-32.055 40.065-32.055z m305.475-110.91l67.995 67.995c12.51 12.51 9.975 35.34-5.67 51s-38.475 18.18-51 5.67l-67.995-67.995c-12.51-12.51-9.975-35.34 5.67-51s38.49-18.18 51-5.67z m96.255-569.4H112.295a40.065 40.065 0 1 1 0-80.115h801.225a40.065 40.065 0 1 1 0 80.115z m46.5 360.765h-96.21c-17.7 0-32.055-17.925-32.055-40.065s14.355-40.05 32.055-40.05h96.135c17.7 0 32.055 17.925 32.055 40.05S977.645 364.5 959.945 364.5z m-753.585 208.35c12.51-12.525 35.34-9.99 51 5.655s18.18 38.475 5.67 51L195.095 697.5c-12.51 12.51-35.34 9.975-51-5.67s-18.18-38.475-5.67-51zM192.245 324c0 22.125-14.355 40.065-32.055 40.065H64.055C46.34 364.125 32 346.18499999999995 32 324s14.34-40.065 32.055-40.065h96.135c17.7 0.06 32.055 18 32.055 40.065z" horiz-adv-x="1024" />
<glyph glyph-name="alarm" unicode="&#58895;" d="M232.475 42.764999999999986h560.85V323.19000000000005c0 154.875-125.55 280.5-280.425 280.5s-280.5-125.55-280.5-280.5z m681-40.065H112.295a40.065 40.065 0 1 1 0-80.115h801.225a40.065 40.065 0 0 1 0 80.115zM206.435 571.8c12.51-12.51 35.34-9.975 51 5.67s18.18 38.475 5.67 51l-68.01 67.98c-12.51 12.51-35.34 9.975-51-5.67s-18.18-38.475-5.67-51z m305.355 111.21c22.125 0 40.05 14.34 40.05 32.055V811.2c0 17.7-17.925 32.055-40.05 32.055s-40.065-14.355-40.065-32.055v-96.135c0-17.715 17.94-32.055 40.065-32.055z m305.475-110.91l67.995 67.995c12.51 12.51 9.975 35.34-5.67 51s-38.475 18.18-51 5.67l-67.98-67.98c-12.51-12.525-9.975-35.355 5.67-51s38.475-18.195 50.985-5.685z m142.68-208.635h-96.135c-17.715 0-32.055-18-32.055-40.065s14.34-40.05 32.055-40.05h96.135c17.7 0 32.055 18 32.055 40.05s-14.355 40.065-32.055 40.065z m-767.7-40.5c0 22.125-14.355 40.065-32.055 40.065h-96.15C46.34 363 32 345.105 32 322.98s14.34-40.065 32.04-40.065h96.15c17.7 0 32.055 17.94 32.055 40.065z" horiz-adv-x="1024" />
<glyph glyph-name="temp" unicode="&#58911;" d="M541.15340281 273.05770874999996V530.56381219c0 15.65472094-12.748755 28.40347594-28.40347594 28.40347593h-2.24978062c-15.2797575 0-27.55980844-12.37379156-27.55980844-27.55980843v-258.34977094c-42.37086187-12.28005094-73.39908188-50.1513525-73.39908187-95.33443969 0-55.21335844 45.83927344-99.92774156 102.55248468-99.92774156 56.61947062 0 102.45874406 44.80812375 102.45874407 99.92774156-0.09374062 45.18308719-31.12196063 82.96064813-73.39908188 95.33443969zM691.98242375 387.14031844c-6.3743775 5.24948719-10.12401094 12.37379156-10.12401188 19.68557718V697.98496219C681.85841188 789.56976844 605.64710469 864 512 864c-93.64710469 0-169.85841188-74.43023156-169.85841188-166.01503781v-282.90987188c0-12.28005094-5.06200594-23.62269281-13.77990468-31.02822-61.40025375-51.8386875-96.55307063-127.11258656-96.55307063-206.41734187 0-150.82902094 125.70647437-273.62952844 280.28512781-273.62952844s280.28512875 122.70676687 280.28512875 273.62952844C792.28512875 258.80910094 755.72619875 335.20789031000004 691.98242375 387.14031844zM512-9.102236250000033c-105.92715563 0-191.98125187 83.80431563-191.98125187 186.82550531 0 64.21247906 33.5592225 123.26921156 89.70998906 157.85958375l13.5924225 8.34293531c4.40581969 2.71848469 7.12430437 7.59300844 7.12430437 12.748755V697.98496219c0 43.68323437 36.65267062 79.21101469 81.64827657 79.21101468 44.99560594 0 81.64827656-35.52778031 81.64827656-79.21101468v-341.31041907c0-5.15574656 2.71848469-10.03027031 7.12430437-12.74875499l13.5924225-8.34293532c56.15076656-34.59037219 89.61624844-93.55336406 89.61624844-157.85958375-0.09374062-103.02118969-86.24157844-186.82550531-192.0749925-186.82550531z" horiz-adv-x="1024" />
<glyph glyph-name="press" unicode="&#58909;" d="M828.48 41.27999999999997a32 32 0 1 0-44.8 45.44A378.24 378.24 0 0 1 896 355.52a384 384 0 0 1-768 0 378.24 378.24 0 0 1 112.32-268.8 32 32 0 0 0 0-45.12 32 32 0 0 0-45.44 0A443.84 443.84 0 0 0 512 800a448 448 0 0 0 448-444.48 441.6 441.6 0 0 0-131.52-314.24zM96 288a32 32 0 0 0 0 64h64a32 32 0 0 0 0-64z m768 0a32 32 0 0 0 0 64h64a32 32 0 0 0 0-64zM201.28 617.28a32 32 0 1 0 45.44 45.44l32-32a32 32 0 0 0-45.44-45.44z m544-544a32 32 0 0 0 45.44 45.44l32-32a32 32 0 0 0-45.44-45.44z m32 589.44a32 32 0 1 0 45.44-45.44l-32-32a32 32 0 0 0-45.44 45.44z m-544-544a32 32 0 0 0 45.44-45.44l-32-32a32 32 0 0 0-45.44 45.44zM480 736a32 32 0 0 0 64 0v-64a32 32 0 0 0-64 0z m117.76-345.92l-32-8.64a459.2 459.2 0 0 1-68.8-22.08 41.92 41.92 0 0 1-12.16-53.44 28.48 28.48 0 0 1 41.28-13.44 662.72 662.72 0 0 1 70.08 75.2l7.68 8.64 16 19.2z m-48.64 53.44l32 8.64c25.28 6.4 52.16 12.8 79.04 18.88l25.92 6.08 10.24 2.24a32 32 0 0 0 32-51.2c0-1.6-3.2-4.48-6.4-8l-16.96-21.12c-17.92-21.76-35.84-43.52-53.12-64l-7.68-8.96a542.08 542.08 0 0 0-84.48-87.68 92.48 92.48 0 0 0-132.16 37.76 105.92 105.92 0 0 0 34.56 137.28 387.84 387.84 0 0 0 87.04 30.08z" horiz-adv-x="1024" />
<glyph glyph-name="yuyan" unicode="&#61489;" d="M608 64H48c-26.51 0-48 21.49-48 48V656c0 26.51 21.49 48 48 48h560v-640z m-241.352 145.244A24 24 0 0 1 389.678 192h45.726c16.44 0 28.014 16.156 22.724 31.722L343.22 561.8299999999999a24 24 0 0 1-22.724 16.278h-64.978a24.002 24.002 0 0 1-22.724-16.278L117.884 223.72199999999998C112.594 208.15599999999995 124.168 192 140.608 192h45.61a24 24 0 0 1 23.07 17.386l18.236 63.614h120.422l18.702-63.756z m-78.102 280.84s8.64-42.122 15.66-66.42l21.6-75.062h-76.14l22.14 75.062c7.02 24.3 15.66 66.42 15.66 66.42h1.08zM1232 64H672V704h560c26.51 0 48-21.49 48-48v-544c0-26.51-21.49-48-48-48z m-72 456h-128v32c0 13.254-10.746 24-24 24h-32c-13.254 0-24-10.746-24-24v-32h-128c-13.254 0-24-10.746-24-24v-32c0-13.254 10.746-24 24-24h228.212c-12.526-28.598-33.036-57.944-60.046-86.412-13.12 13.796-24.794 27.82-34.73 41.866-7.278 10.288-21.17 13.35-31.99 6.892l-14.56-8.692-12.996-7.758c-11.912-7.112-15.386-22.842-7.47-34.234 12.13-17.458 26.196-34.672 41.968-51.452-16.244-12.452-33.682-24.488-52.206-35.928-11.042-6.82-14.762-21.112-8.324-32.38l15.882-27.792c6.724-11.766 21.87-15.652 33.412-8.552 25.464 15.662 49.142 32.35 70.886 49.782 21.834-17.522 45.532-34.204 70.792-49.762 11.548-7.112 26.706-3.236 33.434 8.54l15.888 27.806c6.426 11.246 2.74 25.52-8.27 32.342a625.474 625.474 0 0 0-52.12 36.038c42.048 44.85 71.536 92.578 85.426 139.7H1160c13.254 0 24 10.746 24 24v32c0 13.25-10.746 23.996-24 23.996z" horiz-adv-x="1280" />
<glyph glyph-name="user" unicode="&#62172;" d="M680 294c-53.8125 0-79.6875-30-168-30-88.3125 0-114 30-168 30C204.875 294 92 181.125 92 42V-6c0-49.6875 40.3125-90 90-90h660c49.6875 0 90 40.3125 90 90v48c0 139.125-112.875 252-252 252zM842-6H182v48c0 89.25 72.75 162 162 162 27.375 0 71.8125-30 168-30 96.9375 0 140.4375 30 168 30 89.25 0 162-72.75 162-162V-6zM512 324c149.0625 0 270 120.9375 270 270S661.0625 864 512 864 242 743.0625 242 594s120.9375-270 270-270z m0 450c99.1875 0 180-80.8125 180-180s-80.8125-180-180-180-180 80.8125-180 180 80.8125 180 180 180z" horiz-adv-x="1024" />
<glyph glyph-name="light" unicode="&#58932;" d="M195.2 656.8c13.4-13.5 35.3-13.6 48.8-0.1l0.1 0.1 0.3-1c13.5 13.4 13.6 35.3 0.1 48.8l-0.1 0.1-62 65.9c-13.2 13.8-35.1 14.3-48.9 1-13.8-13.2-14.3-35.1-1-48.9l62.7-65.9z m637.4 0.2l65.6 63.8c13.5 13.4 13.6 35.3 0.1 48.8l-0.1 0.1-1.3 0.5c-13.4 13.5-35.3 13.6-48.8 0.1l-0.1-0.1-64.4-64.4c-13.5-13.5-13.5-35.4 0-48.9 13.6-13.4 35.5-13.4 49 0.1z m-672-273c0 19.1-15.5 34.6-34.6 34.6H34.6C15.5 418.6 0 403.1 0 384s15.5-34.6 34.6-34.6H126c19.1 0 34.6 15.5 34.6 34.6z m351.3 351.8h0.3c19.1 0 34.5 15.4 34.5 34.5V861.4C546.6 880.5 531.1 896 512 896s-34.6-15.5-34.6-34.6v-91.1c0-19.1 15.4-34.5 34.5-34.5z m4.3-80.9c-149.4 0-270.9-121.5-270.9-270.9s121.5-270.9 270.9-270.9S787 234.60000000000002 787 384 665.5 654.9 516.2 654.9z m0-458.5c-103.4 0-187.6 84.1-187.6 187.6 0 97.9 75.5 178.5 171.3 186.8C493 552.1 489 532 489 510.9c0-95.1 77.1-172.2 172.2-172.2 13.1 0 25.7 1.6 38 4.3-18.8-83.7-93.7-146.6-183-146.6zM191.4 111l-65.6-63.8c-13.5-13.4-13.6-35.3-0.1-48.8l0.1-0.1 1.3-0.5c13.4-13.5 35.3-13.6 48.8-0.1l0.1 0.1 64.4 64.4c13.5 13.5 13.5 35.4 0 48.9-13.6 13.4-35.5 13.4-49-0.1z m798 307.6h-91.1c-19.1 0-34.6-15.5-34.6-34.6s15.5-34.6 34.6-34.6h91.1c19.1 0 34.6 15.5 34.6 34.6s-15.5 34.6-34.6 34.6zM828.8 111.20000000000005c-13.4 13.5-35.3 13.6-48.8 0.1l-0.1-0.1-0.3 1c-13.5-13.4-13.6-35.3-0.1-48.8l0.1-0.1 62-65.9c13.2-13.8 35.1-14.3 48.9-1 13.8 13.2 14.3 35.1 1 48.9l-62.7 65.9z m-316.7-79h-0.3c-19.1 0-34.5-15.4-34.5-34.5v-91.1c0-19.1 15.5-34.6 34.6-34.6s34.6 15.5 34.6 34.6v91.1c0.1 19.1-15.3 34.5-34.4 34.5z" horiz-adv-x="1024" />
<glyph glyph-name="left0" unicode="&#58903;" d="M512 834a450 450 0 1 1 450-450 450 450 0 0 1-450 450z m0-787.5a337.5 337.5 0 1 0 337.5 337.5 337.5 337.5 0 0 0-337.5-337.5zM604.25 594.375a51.1875 51.1875 0 0 1-72 0l-174.375-174.375a51.75 51.75 0 0 1 0-72l174.375-174.375a51.1875 51.1875 0 1 1 72 72L465.875 384l138.375 138.375a51.1875 51.1875 0 0 1 0 72z" horiz-adv-x="1024" />
<glyph glyph-name="right0" unicode="&#58908;" d="M512 834a450 450 0 1 1 450-450 450 450 0 0 1-450 450z m0-787.5a337.5 337.5 0 1 0 337.5 337.5 337.5 337.5 0 0 0-337.5-337.5zM495.6875 616.875a56.25 56.25 0 0 1-79.875-79.875L568.25 384l-152.4375-153a56.25 56.25 0 0 1 79.875-79.875l192.9375 192.9375a56.25 56.25 0 0 1 0 79.875z" horiz-adv-x="1024" />
</font>
</defs></svg>
......@@ -4,7 +4,7 @@
export const environment = {
production: false,
baseUrl: 'http://172.16.1.23:8092', // 对外访问测试网地址
baseUrl: 'http://172.16.1.52:8094', // 对外访问测试网地址
imgUrl: 'http://172.16.1.23' // 图片地址
};
......
/* You can add global styles to this file, and also import other style files */
html, body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
/* You can add global styles to this file, and also import other style files */
* {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
html:lang(zh) .sg-common-class, html:lang(zh) body {
font-family: "Microsoft Yahei", 微软雅黑, Arial, STXihei, "boschsans", "Helvetica Neue", Helvetica, 华文细黑, sans-serif;
}
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
*::-webkit-scrollbar
{
width: 12px;
height: 12px;
background-color: #F5F5F5;
}
/*定义滚动条轨道 内阴影+圆角*/
*::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.1);
border-radius: 12px;
background-color: #F5F5F5;
}
/*定义滑块 内阴影+圆角*/
*::-webkit-scrollbar-thumb
{
border-radius: 12px;
//-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #c0c0c0;
}
// 表格中删除的字体颜色
.deleteFontColor {
color: red;
cursor: pointer;
}
.deleteFontColor:hover {
color: red;
cursor: pointer;
}
.amap-logo, .amap-copyright {
display: none !important;
}
//页面标准按钮样式
.btnDel {
color: #ff2c32;
background-color: #FFFFFF;
border-color: #d9d9d9;
}
.btnDel:hover, .btnDel:focus, .btnDel:active {
background-color: #ff2c32;
border-color: #ff2c32;
color: #ffffff;
}
.btnAll {
color: #FFFFFF;
background-color: #a0d911;
border-color: #a0d911;
}
.btnAll:hover, .btnAll:focus, .btnAll:active {
background-color: #a0d911;
border-color: #a0d911;
color: #FFFFFF;
}
.btnAdd {
color: #FFFFFF;
background-color: #52c41a;
border-color: #52c41a;
}
.btnAdd:hover, .btnAdd:focus, .btnAdd:active {
background-color: #52c41a;
border-color: #52c41a;
color: #FFFFFF;
}
.textStyle1 {
color: #000;
font-weight: 400;
font-size: 1rem;
}
.textStyle2 {
color: #000;
font-weight: 200;
font-size: 1rem;
}
.whenHover {
cursor: pointer;
}
.whenHover:hover, .whenHover:focus {
color: #005691 !important;
}
.header, .footer {
background-image: url(data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB4bWw6c3BhY2U9InByZXNlcnZlIgogIGhlaWdodD0iMzAwIgogIHdpZHRoPSI3MjAiCiAgdmVyc2lvbj0iMS4xIgogIHk9IjAiCiAgeD0iMCIKICB2aWV3Qm94PSIwIDAgNzIwIDMwMCI+CiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KICAgIC5zdDAgewogICAgICBmaWxsOiB1cmwoIiNTVkdJRF8xXyIpOwogICAgfQogICAgLnN0MSB7CiAgICAgIGZpbGw6IHVybCgiI1NWR0lEXzJfIik7CiAgICB9CiAgICAuc3QyIHsKICAgICAgZmlsbDogdXJsKCIjU1ZHSURfM18iKTsKICAgIH0KICAgIC5zdDMgewogICAgICBmaWxsOiB1cmwoIiNTVkdJRF80XyIpOwogICAgfQogICAgLnN0NCB7CiAgICAgIGZpbGw6IHVybCgiI1NWR0lEXzVfIik7CiAgICB9CiAgICAuc3Q1IHsKICAgICAgZmlsbDogI0FGMjAyNDsKICAgIH0KICAgIC5zdDYgewogICAgICBmaWxsOiB1cmwoIiNTVkdJRF82XyIpOwogICAgfQogICAgLnN0NyB7CiAgICAgIGZpbGw6ICM5NDFCMUU7CiAgICB9CiAgICAuc3Q4IHsKICAgICAgZmlsbDogI0IxMjczOTsKICAgIH0KICAgIC5zdDkgewogICAgICBmaWxsOiAjOTUyNDMyOwogICAgfQogICAgLnN0MTAgewogICAgICBmaWxsOiAjRDQyMDI3OwogICAgfQogICAgLnN0MTEgewogICAgICBmaWxsOiB1cmwoIiNTVkdJRF83XyIpOwogICAgfQogICAgLnN0MTIgewogICAgICBmaWxsOiB1cmwoIiNTVkdJRF84XyIpOwogICAgfQogICAgLnN0MTMgewogICAgICBmaWxsOiAjMUM5QTQ4OwogICAgfQogICAgLnN0MTQgewogICAgICBmaWxsOiB1cmwoIiNTVkdJRF85XyIpOwogICAgfQogICAgLnN0MTUgewogICAgICBmaWxsOiB1cmwoIiNTVkdJRF8xMF8iKTsKICAgIH0KICAgIC5zdDE2IHsKICAgICAgZmlsbDogIzJBMzg4NjsKICAgIH0KICAgIC5zdDE3IHsKICAgICAgZmlsbDogdXJsKCIjU1ZHSURfMTFfIik7CiAgICB9CiAgICAuc3QxOCB7CiAgICAgIGZpbGw6IHVybCgiI1NWR0lEXzEyXyIpOwogICAgfQogICAgLnN0MTkgewogICAgICBmaWxsOiB1cmwoIiNTVkdJRF8xM18iKTsKICAgIH0KICAgIC5zdDIwIHsKICAgICAgZmlsbDogdXJsKCIjU1ZHSURfMTRfIik7CiAgICB9CiAgPC9zdHlsZT4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMS41NSwtMy4zKSI+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiB5Mj0iLTMyLjY2MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHkxPSItMzIuNjYzIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIC0xMTguOTggMTIwLjU0KSIgeDI9Ijg0Mi4wOCIgeDE9IjExOC45OCI+PHN0b3Agc3RvcC1jb2xvcj0iIzk1MjMzMSIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzkyMUMxRCIgb2Zmc2V0PSIuMDM2MDk0Ii8+PHN0b3Agc3RvcC1jb2xvcj0iI0IwMjczOSIgb2Zmc2V0PSIuMDg0NjQ5Ii8+PHN0b3Agc3RvcC1jb2xvcj0iI0FEMUYyNCIgb2Zmc2V0PSIuMTIzNyIvPjxzdG9wIHN0b3AtY29sb3I9IiNDNzIwMjYiIG9mZnNldD0iLjE1MDkiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDQyMDI3IiBvZmZzZXQ9Ii4xNjk3Ii8+PHN0b3Agc3RvcC1jb2xvcj0iI0NDMjQzMSIgb2Zmc2V0PSIuMTc1OCIvPjxzdG9wIHN0b3AtY29sb3I9IiNCNzJCNEMiIG9mZnNldD0iLjE4ODgiLz48c3RvcCBzdG9wLWNvbG9yPSIjOTUzMzcxIiBvZmZzZXQ9Ii4yMDc0Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzg4MzU3RiIgb2Zmc2V0PSIuMjE0MiIvPjxzdG9wIHN0b3AtY29sb3I9IiM4NTM2ODEiIG9mZnNldD0iLjI0MzYiLz48c3RvcCBzdG9wLWNvbG9yPSIjNkYzNjhCIiBvZmZzZXQ9Ii4yNjM4Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzM5NDI4RiIgb2Zmc2V0PSIuMjkxMSIvPjxzdG9wIHN0b3AtY29sb3I9IiMyMzNEN0QiIG9mZnNldD0iLjMyNDIiLz48c3RvcCBzdG9wLWNvbG9yPSIjMzIyQzZGIiBvZmZzZXQ9Ii40MTgxIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzJBMzg4NSIgb2Zmc2V0PSIuNDk0Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzFENjJBMSIgb2Zmc2V0PSIuNTU4MSIvPjxzdG9wIHN0b3AtY29sb3I9IiMyNzZDQTUiIG9mZnNldD0iLjU3MDIiLz48c3RvcCBzdG9wLWNvbG9yPSIjNDM4RUIzIiBvZmZzZXQ9Ii42MTAzIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzU1QTVCQyIgb2Zmc2V0PSIuNjM5OSIvPjxzdG9wIHN0b3AtY29sb3I9IiM1Q0FGQkYiIG9mZnNldD0iLjY1NTYiLz48c3RvcCBzdG9wLWNvbG9yPSIjNTZBQkJEIiBvZmZzZXQ9Ii42Nzc3Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzQzOUZCOCIgb2Zmc2V0PSIuNzA1OCIvPjxzdG9wIHN0b3AtY29sb3I9IiMxODhFQUYiIG9mZnNldD0iLjczNzIiLz48c3RvcCBzdG9wLWNvbG9yPSIjMDM4QkFFIiBvZmZzZXQ9Ii43NDI2Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzA2OTI5MiIgb2Zmc2V0PSIuNzg5OCIvPjxzdG9wIHN0b3AtY29sb3I9IiMwNUExNEIiIG9mZnNldD0iLjg4NzUiLz48c3RvcCBzdG9wLWNvbG9yPSIjMDM5MjdFIiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHdpZHRoPSI3MjMuMSIgeT0iMCIgeD0iMCIgaGVpZ2h0PSIzMDYuNCIgY2xhc3M9InN0MCIgZmlsbD0idXJsKCNTVkdJRF8xXykiLz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMl8iIHkyPSItMTA5LjI2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeTE9Ii0xMDkuMjYiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgLTExOC45OCAxMjAuNTQpIiB4Mj0iMjM1Ljk4IiB4MT0iMzI1LjA4Ij48c3RvcCBzdG9wLWNvbG9yPSIjODkzNjgwIiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjODkzNjgwIiBvZmZzZXQ9Ii4zMzU0Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzhEMzE2RCIgb2Zmc2V0PSIuNTAyNSIvPjxzdG9wIHN0b3AtY29sb3I9IiM5MDI5NEQiIG9mZnNldD0iLjgzOTgiLz48c3RvcCBzdG9wLWNvbG9yPSIjOTAyNTQxIiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50Pjxwb2x5Z29uIHBvaW50cz0iMTc1LjEgMTUzLjIgMTE3IDMwNi40IDIwNi4xIDMwNi40IiBmaWxsPSJ1cmwoI1NWR0lEXzJfKSIgY2xhc3M9InN0MSIvPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8zXyIgeTI9Ii04Mi4yODQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB5MT0iMTIwLjI0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIC0xMTguOTggMTIwLjU0KSIgeDI9IjQ0Ni41NSIgeDE9IjQ3OC45MyI+PHN0b3Agc3RvcC1jb2xvcj0iIzMyMkM2RiIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzMyMkM2RiIgb2Zmc2V0PSIuMjQyNyIvPjxzdG9wIHN0b3AtY29sb3I9IiMzMDJGNzIiIG9mZnNldD0iLjQ1OTkiLz48c3RvcCBzdG9wLWNvbG9yPSIjMkEzQTdFIiBvZmZzZXQ9Ii43MTU1Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzE1NEE5MyIgb2Zmc2V0PSIuOTg5NiIvPjxzdG9wIHN0b3AtY29sb3I9IiMxMzRCOTQiIG9mZnNldD0iMSIvPjwvbGluZWFyR3JhZGllbnQ+PHBvbHlnb24gcG9pbnRzPSIyODguNCAxNTMuMiAzMTAuNyAzMDYuNCAzNTguMSAzMDYuNCAzNTguMSAwIDMxMi45IDAiIGZpbGw9InVybCgjU1ZHSURfM18pIiBjbGFzcz0ic3QyIi8+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzRfIiB5Mj0iLTMyLjY2MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHkxPSItMzIuNjYzIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIC0xMTguOTggMTIwLjU0KSIgeDI9IjM3Mi44OCIgeDE9IjI5NC4wOCI+PHN0b3Agc3RvcC1jb2xvcj0iIzZGMzc4RCIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzNBNDI5MSIgb2Zmc2V0PSIxIi8+PC9saW5lYXJHcmFkaWVudD48cG9seWdvbiBwb2ludHM9IjE3NS4xIDE1My4yIDIwNi4xIDMwNi40IDI1My45IDE1My4yIDIwOS40IDAgMjA5LjQgMCIgZmlsbD0idXJsKCNTVkdJRF80XykiIGNsYXNzPSJzdDMiLz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfNV8iIHkyPSItMzIuNjYzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeTE9Ii0zMi42NjMiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgLTExOC45OCAxMjAuNTQpIiB4Mj0iMzI1LjA4IiB4MT0iNDMxLjg4Ij48c3RvcCBzdG9wLWNvbG9yPSIjMjMzRDdEIiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjMjkzRDdEIiBvZmZzZXQ9Ii4yNDk1Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzNBM0M4MCIgb2Zmc2V0PSIuNTQ0NiIvPjxzdG9wIHN0b3AtY29sb3I9IiM1MTNCODQiIG9mZnNldD0iLjg2MTYiLz48c3RvcCBzdG9wLWNvbG9yPSIjNUQzQTg2IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50Pjxwb2x5Z29uIHBvaW50cz0iMjUzLjkgMTUzLjIgMjA2LjEgMzA2LjQgMzEwLjcgMzA2LjQgMjg4LjQgMTUzLjIgMzEyLjkgMCAyMDkuNCAwIiBmaWxsPSJ1cmwoI1NWR0lEXzVfKSIgY2xhc3M9InN0NCIvPjxwb2x5Z29uIHBvaW50cz0iMTE2LjEgMCA1NS43IDAgNTUuNyA5NC44IDg5LjkgMTUzLjIgNTUuNyAyMTEuNiA1NS43IDMwNi40IDExNyAzMDYuNCA5NS4yIDE1My4yIiBmaWxsPSIjYWYyMDI0IiBjbGFzcz0ic3Q1Ii8+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzZfIiB5Mj0iNDMuOTM3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeTE9IjQzLjkzNyIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAtMTE4Ljk4IDEyMC41NCkiIHgyPSIyMzIuNjciIHgxPSIzMjkuMTEiPjxzdG9wIHN0b3AtY29sb3I9IiM4OTM2ODAiIG9mZnNldD0iMCIvPjxzdG9wIHN0b3AtY29sb3I9IiM4OTM2ODAiIG9mZnNldD0iLjMzNTQiLz48c3RvcCBzdG9wLWNvbG9yPSIjOEQzMTZEIiBvZmZzZXQ9Ii41MDI1Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzkwMjk0RCIgb2Zmc2V0PSIuODM5OCIvPjxzdG9wIHN0b3AtY29sb3I9IiM5MDI1NDEiIG9mZnNldD0iMSIvPjwvbGluZWFyR3JhZGllbnQ+PHBvbHlnb24gcG9pbnRzPSIxNzUuMSAxNTMuMiAyMDkuNCAwIDExNi4xIDAiIGZpbGw9InVybCgjU1ZHSURfNl8pIiBjbGFzcz0ic3Q2Ii8+PHBvbHlnb24gcG9pbnRzPSI1NS43IDk0LjggNTUuNyAwIDAgMCIgZmlsbD0iIzk0MWIxZSIgY2xhc3M9InN0NyIvPjxwb2x5Z29uIHBvaW50cz0iNTUuNyAyMTEuNiA4OS45IDE1My4yIDU1LjcgOTQuOCIgZmlsbD0iI2IxMjczOSIgY2xhc3M9InN0OCIvPjxwb2x5Z29uIHBvaW50cz0iNTUuNyAyMTEuNiAwIDMwNi40IDU1LjcgMzA2LjQiIGZpbGw9IiM5NDFiMWUiIGNsYXNzPSJzdDciLz48cG9seWdvbiBwb2ludHM9IjU1LjcgOTQuOCAwIDAgMCAzMDYuNCA1NS43IDIxMS42IiBmaWxsPSIjOTUyNDMyIiBjbGFzcz0ic3Q5Ii8+PHBvbHlnb24gcG9pbnRzPSIxMTYuMSAwIDk1LjIgMTUzLjIgMTE3IDMwNi40IDE3NS4xIDE1My4yIiBmaWxsPSIjZDQyMDI3IiBjbGFzcz0ic3QxMCIvPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF83XyIgeTI9Ii0xODYuMDYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB5MT0iMTIwLjQ0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIC0xMTguOTggMTIwLjU0KSIgeDI9Ijc0OC45NiIgeDE9Ijc0OC45NiI+PHN0b3Agc3RvcC1jb2xvcj0iIzk0QkU1NSIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzkzQkQ1OCIgb2Zmc2V0PSIuMDQ0MzQwIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzhCQkM2QSIgb2Zmc2V0PSIuMzg5MSIvPjxzdG9wIHN0b3AtY29sb3I9IiM4NkJDNzUiIG9mZnNldD0iLjcxNDkiLz48c3RvcCBzdG9wLWNvbG9yPSIjODRCQzc5IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoCiAgICAgIGQ9Im02NDEuNiAyNTkuNmMxLjctMjUuNCAxMC01NC42IDE4LjgtODUuNiAxLjQtNSAyLjgtMTAgNC4yLTE1LjEtMS40LTUuNS0yLjgtMTAuOS00LjItMTYuMi04LjgtMzMuMy0xNy02NC43LTE4LjgtOTItMS40LTIxLjIgMS40LTM3IDguOS01MC42aC00NS45Yy03LjUgMTguMy0xMC4zIDI5LjEtOC45IDUwLjMgMS43IDI3LjMgMTAgNTguNyAxOC44IDkyIDEzIDQ5LjMgMjggMTA2LjIgMjMuMiAxNjQuMmgxMi45Yy03LjYtMTIuOC0xMC40LTI3LjMtOS00N3oiCiAgICAgIGNsYXNzPSJzdDExIgogICAgICBmaWxsPSJ1cmwoI1NWR0lEXzdfKSIvPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF84XyIgeTI9Ii0xODQuNDUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB5MT0iMTE3LjI5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIC0xMTguOTggMTIwLjU0KSIgeDI9IjczMy40OSIgeDE9IjY1My43NiI+PHN0b3Agc3RvcC1jb2xvcj0iIzA4QTI0QiIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzBBQTE0RSIgb2Zmc2V0PSIuMTY3OCIvPjxzdG9wIHN0b3AtY29sb3I9IiMwQjlFNTciIG9mZnNldD0iLjQwNDciLz48c3RvcCBzdG9wLWNvbG9yPSIjMDk5QTY3IiBvZmZzZXQ9Ii42ODI3Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzA0OTQ3RCIgb2Zmc2V0PSIuOTg5OCIvPjxzdG9wIHN0b3AtY29sb3I9IiMwNDkzN0UiIG9mZnNldD0iMSIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggZD0ibTYxNC41IDE0Mi4zYy04LjgtMzMuMy0xNy02NC43LTE4LjgtOTItMS40LTIxLjIgMS40LTMyIDguOS01MC4zaC0zNS40YzUuNyA1My45LTMuOCAxMDYuNy0xMy42IDE2Ni44LTUuNyAzNS0xMS43IDcxLjMtMTMuMiAxMDAuNi0xLjEgMjEuMSAwLjQgMzIuOCAxLjggMzloOTMuNWM0LjgtNTcuOS0xMC4zLTExNC44LTIzLjItMTY0LjF6IiBjbGFzcz0ic3QxMiIgZmlsbD0idXJsKCNTVkdJRF84XykiLz48cGF0aCBjbGFzcz0ic3QxMyIgZmlsbD0iIzFjOWE0OCIgZD0ibTY2NC42IDE1OC45Yy0xLjQgNS4xLTIuOCAxMC4xLTQuMiAxNS4xLTguOCAzMS0xNyA2MC4yLTE4LjggODUuNi0xLjQgMTkuNyAxLjQgMzQuMiA5IDQ2LjloMzNjNC4yLTUxLjgtNy4yLTEwMi4zLTE5LTE0Ny42eiIvPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF85XyIgeTI9Ii0xODUuOTYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB5MT0iMTIwLjU0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIC0xMTguOTggMTIwLjU0KSIgeDI9IjgxMi44MyIgeDE9IjgxMi44MyI+PHN0b3Agc3RvcC1jb2xvcj0iIzY5QTA2MCIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzYzOUQ1QyIgb2Zmc2V0PSIuMDM5ODk1Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzRDOTQ0RiIgb2Zmc2V0PSIuMjE5MiIvPjxzdG9wIHN0b3AtY29sb3I9IiMzNzhFNDciIG9mZnNldD0iLjQxODQiLz48c3RvcCBzdG9wLWNvbG9yPSIjMjk4QjQ0IiBvZmZzZXQ9Ii42NTE1Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzIzOEE0MyIgb2Zmc2V0PSIxIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBkPSJtNjgwLjUgMGMxMC43IDU1LjMtMi41IDExMC40LTE1LjkgMTU4LjkgMTEuNyA0NS4zIDIzLjIgOTUuOCAxOC45IDE0Ny42aDM5LjZ2LTMwNi41aC00Mi42eiIgY2xhc3M9InN0MTQiIGZpbGw9InVybCgjU1ZHSURfOV8pIi8+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzEwXyIgeTI9Ii0xODUuODYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB5MT0iMTIwLjU0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIC0xMTguOTggMTIwLjU0KSIgeDI9IjY1Mi40NSIgeDE9IjY1Mi40NSI+PHN0b3Agc3RvcC1jb2xvcj0iIzA1QjVEQyIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzA0QjBENyIgb2Zmc2V0PSIuMjE5NyIvPjxzdG9wIHN0b3AtY29sb3I9IiMwNUE0QzkiIG9mZnNldD0iLjUzNzEiLz48c3RvcCBzdG9wLWNvbG9yPSIjMDU5MUI0IiBvZmZzZXQ9Ii45MTIyIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzA1OENBRSIgb2Zmc2V0PSIxIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBkPSJtNTQyLjMgMjY3LjRjMS41LTI5LjQgNy41LTY1LjYgMTMuMi0xMDAuNiA5LjgtNjAuMSAxOS4zLTExMi44IDEzLjYtMTY2LjhoLTcwLjhjLTEuNCAxMS40LTIuOSAxOS4yLTEuOCA0MS44IDEuNSAzMS42IDcuNSA3MC41IDEzLjIgMTA4LjIgOC40IDU1LjQgMTYuNiAxMDguOCAxNS4xIDE1Ni40aDE5LjJjLTEuMy02LjItMi44LTE3LjktMS43LTM5eiIgY2xhc3M9InN0MTUiIGZpbGw9InVybCgjU1ZHSURfMTBfKSIvPjxwb2x5Z29uIHBvaW50cz0iMzc1LjcgMTUzLjIgMzU4LjEgMCAzNTguMSAzMDYuNCIgZmlsbD0iIzJhMzg4NiIgY2xhc3M9InN0MTYiLz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMTFfIiB5Mj0iNzcuMTM2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeTE9Ii00LjMyODEiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgLTExOC45OCAxMjAuNTQpIiB4Mj0iNzk2LjcxIiB4MT0iNzUxLjA1Ij48c3RvcCBzdG9wLWNvbG9yPSIjNjJCMTZFIiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjODdCOTU3IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGQ9Im02NDEuNiA1MC42YzEuNyAyNy4zIDEwIDU4LjcgMTguOCA5MiAxLjQgNS4zIDIuOCAxMC43IDQuMiAxNi4yIDEzLjUtNDguNCAyNi42LTEwMy41IDE1LjktMTU4LjhoLTMwYy03LjUgMTMuNi0xMC4zIDI5LjQtOC45IDUwLjZ6IiBjbGFzcz0ic3QxNyIgZmlsbD0idXJsKCNTVkdJRF8xMV8pIi8+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzEyXyIgeTI9Ii0xODkuMjgiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB5MT0iMTEzLjcxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIC0xMTguOTggMTIwLjU0KSIgeDI9IjYzMS41OSIgeDE9IjU1MC40Ij48c3RvcCBzdG9wLWNvbG9yPSIjMDY5QUQ0IiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjMzBBMENFIiBvZmZzZXQ9Ii4zNTI1Ii8+PHN0b3Agc3RvcC1jb2xvcj0iIzVCQjBDMCIgb2Zmc2V0PSIxIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBkPSJtNTA5LjggMTUwYy01LjctMzcuNy0xMS43LTc2LjYtMTMuMi0xMDguMi0xLjEtMjIuNyAwLjQtMzAuNCAxLjgtNDEuOGgtNDEuNWMxLjUgNDAuMS0xLjUgODUuMy03IDE2MC44LTMuMSA0My41LTggMTEwLjUtNyAxNDUuN2g4Mi4xYzEuNC00Ny43LTYuOC0xMDEuMS0xNS4yLTE1Ni41eiIgY2xhc3M9InN0MTgiIGZpbGw9InVybCgjU1ZHSURfMTJfKSIvPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xM18iIHkyPSItMTg1Ljg2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeTE9IjEyMC41NCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAtMTE4Ljk4IDEyMC41NCkiIHgyPSI1MDUuMzMiIHgxPSI1MDUuMzMiPjxzdG9wIHN0b3AtY29sb3I9IiMxRTQ1OEUiIG9mZnNldD0iMCIvPjxzdG9wIHN0b3AtY29sb3I9IiMxRjRGOTYiIG9mZnNldD0iLjI0MTEiLz48c3RvcCBzdG9wLWNvbG9yPSIjMkI2QUFCIiBvZmZzZXQ9Ii43MjkyIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzMzN0JCOSIgb2Zmc2V0PSIxIi8+PC9saW5lYXJHcmFkaWVudD48cG9seWdvbiBwb2ludHM9IjM1OC4xIDMwNi40IDQxNC42IDMwNi40IDQxNC42IDAgMzU4LjEgMCAzNzUuNyAxNTMuMiIgZmlsbD0idXJsKCNTVkdJRF8xM18pIiBjbGFzcz0ic3QxOSIvPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xNF8iIHkyPSIxMjAuNTQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB5MT0iLTE4NS44NiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAtMTE4Ljk4IDEyMC41NCkiIHgyPSI1NTQuOTIiIHgxPSI1NTQuOTIiPjxzdG9wIHN0b3AtY29sb3I9IiMzRjlBQzkiIG9mZnNldD0iMCIvPjxzdG9wIHN0b3AtY29sb3I9IiMyMDYyQTIiIG9mZnNldD0iMSIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggZD0ibTQ0OS45IDE2MC44YzUuNS03NS41IDguNS0xMjAuNiA3LTE2MC44aC00Mi4ybC0wLjEgMzA2LjRoMjguM2MtMS0zNS4xIDMuOC0xMDIuMSA3LTE0NS42eiIgY2xhc3M9InN0MjAiIGZpbGw9InVybCgjU1ZHSURfMTRfKSIvPjwvZz4KPC9zdmc+Cg==);
height: 16px;
}
.searchBar {
margin: 10px 10px 0 10px;
padding: 15px;
background-color: #fff;
}
.searchItem {
display: inline-block !important;
margin-bottom: 15px;
width: 100%;
min-width: 265px;
}
.item-label-group:before {
padding-left: 10px;
content: '';
}
.item-label-group:after {
content: ':';
padding-left: 5px;
padding-right: 10px;
font-weight: 600;
}
.item-label-group {
width: calc(44% - 5px);
font-size: 15px;
text-align: right;
vertical-align: baseline;
padding-right: 5px;
line-height: 30px;
display: inline-block;
}
.searchItemGroup {
width: 100%;
display: inline-block !important;
margin-bottom: 15px;
min-width: 265px;
}
.item-input-group {
width: 55%;
display: inline-block;
min-width: 260px;
}
@media screen and (min-width: 780px) {
.searchItem {
width: 50%;
}
.item-label-group {
width: calc(22% - 5px);
}
.item-input-group {
width: 77%;
}
}
@media screen and (min-width: 1280px) {
.searchItem {
width: 33.333%;
}
.item-label-group {
width: calc(29.33% - 5px);
}
.searchItemGroup {
width: 50%;
}
.item-input-group {
width: 68%;
}
}
.contentItem {
display: inline-block !important;
width: 100%;
min-width: 485px;
}
@media screen and (min-width: 1280px) {
.contentItem {
width: 50%;
}
}
@media screen and (min-width: 1720px) {
.contentItem {
width: 33.333%;
}
}
.item-label, .item-input {
display: inline-block;
}
.item-label {
width: calc(44% - 5px);
font-size: 15px;
text-align: right;
padding-right: 5px;
line-height: 30px;
vertical-align: top;
}
.item-label:before {
padding-left: 10px;
content: '';
}
.item-label:after {
content: ':';
padding-left: 5px;
padding-right: 10px;
font-weight: 600;
}
.item-input {
width: 55%;
}
.btnLine {
text-align: right;
}
.btnLine button:not(:last-child) {
margin-right: 10px;
}
.tableBar {
//white-space: nowrap;
//overflow-x: auto;
margin: 10px;
padding: 15px;
background-color: #fff;
}
.infoText {
text-align: left;
font-size: 5px;
color: #888888;
margin: -15px 0 5px 34%;
}
span.delSpan {
color: #ff2c32;
cursor: pointer;
}
span.editSpan {
color: #1890ff;
cursor: pointer;
}
span.addSpan {
color: #4FB3A4;
cursor: pointer;
}
.bottomLine {
border-bottom: 1px solid #e6e6e6;
}
.addIcon {
line-height: 25px;
height: 40px;
margin: 0 5px;
position: relative;
}
.addIcon .iconfont {
font-size: 32px;
color: #52c41a;
}
.inModal {
width: 100%;
}
.inModal .item-label {
text-align: left;
}
.inModal .item-label:before {
padding: 0;
}
.noData {
line-height: 40px;
font-size: 16px;
text-indent: 20px;
}
.echartsPart {
min-width: 300px;
width: 100%;
height: 500px;
}
.inputNumIcon:hover {
color: #FFFFFF;
background-color: #1890ff;
border-radius: 10px;
}
.hidden {
display: none;
}
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