Commit 356b72ff authored by wangqinghua's avatar wangqinghua

bug 修复

parent 530a943b
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<smart-full-screen></smart-full-screen> <smart-full-screen></smart-full-screen>
</div> </div>
</div> </div>
<div nz-row [nzGutter]="4" class="search-form"> <div nz-row class="search-form">
<div nz-col nzSpan="3"> <div nz-col nzSpan="3">
<nz-select style="width: 100%;" nzShowSearch nzAllowClear nzPlaceHolder="选择级别" [(ngModel)]="obj.priorityName"> <nz-select style="width: 100%;" nzShowSearch nzAllowClear nzPlaceHolder="选择级别" [(ngModel)]="obj.priorityName">
<nz-option nzLabel="告警" nzValue="告警"></nz-option> <nz-option nzLabel="告警" nzValue="告警"></nz-option>
......
...@@ -27,17 +27,19 @@ ...@@ -27,17 +27,19 @@
</nz-select> </nz-select>
</div> </div>
</div> </div>
<!--解决状态--> <div class="padding-top-10 padding-bottom-10">
<ng-container *ngIf="type == '1'"> <!--解决状态-->
<ng-container *ngIf="type == '1'">
<smart-analysis-status #smartAnalysisstatus></smart-analysis-status> <smart-analysis-status #smartAnalysisstatus></smart-analysis-status>
</ng-container> </ng-container>
<!--事件分类统计--> <!--事件分类统计-->
<ng-container *ngIf="type == '2'"> <ng-container *ngIf="type == '2'">
<smart-analysis-event #smartAnalysisEvent></smart-analysis-event> <smart-analysis-event #smartAnalysisEvent></smart-analysis-event>
</ng-container> </ng-container>
<!--处理人统计--> <!--处理人统计-->
<ng-container *ngIf="type == '3'"> <ng-container *ngIf="type == '3'">
<smart-analysis-deal #smartAnalysisDeal></smart-analysis-deal> <smart-analysis-deal #smartAnalysisDeal></smart-analysis-deal>
</ng-container> </ng-container>
</div>
...@@ -201,7 +201,7 @@ export class SysChangeCountComponent implements OnInit { ...@@ -201,7 +201,7 @@ export class SysChangeCountComponent implements OnInit {
//时间改变 //时间改变
changeType() { changeType() {
if(this.timeType =='99') return ; if (this.timeType == '99') return;
this.obj.startTime = this.commonSer.getTimeByType(this.timeType).startTime; this.obj.startTime = this.commonSer.getTimeByType(this.timeType).startTime;
this.obj.endTime = this.commonSer.getTimeByType(this.timeType).endTime; this.obj.endTime = this.commonSer.getTimeByType(this.timeType).endTime;
} }
...@@ -222,6 +222,8 @@ export class SysChangeCountComponent implements OnInit { ...@@ -222,6 +222,8 @@ export class SysChangeCountComponent implements OnInit {
this.isDownload = true; this.isDownload = true;
//下载文件 //下载文件
const d = { const d = {
startTime: this.obj.startTime,
endTime: this.obj.endTime,
format: 'excel' format: 'excel'
}; };
this.systemChangeSer.sysChangeExport(d).subscribe( this.systemChangeSer.sysChangeExport(d).subscribe(
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
</nz-breadcrumb> </nz-breadcrumb>
</div> </div>
<div nz-col nzSpan="8" class="text-right"> <div nz-col nzSpan="8" class="text-right">
<button nzType="primary" (click)="returnBack()" nz-button>返回上一页</button>
<button (click)="ngOnInit()" nz-button nzType="primary"><i class="anticon anticon-sync"></i></button> <button (click)="ngOnInit()" nz-button nzType="primary"><i class="anticon anticon-sync"></i></button>
<smart-full-screen></smart-full-screen> <smart-full-screen></smart-full-screen>
</div> </div>
......
...@@ -42,11 +42,10 @@ ...@@ -42,11 +42,10 @@
<button (click)="search()" nz-button nzType="default"><i class="anticon anticon-search" style="color: #6097b7"></i>搜索</button> <button (click)="search()" nz-button nzType="default"><i class="anticon anticon-search" style="color: #6097b7"></i>搜索</button>
</div> </div>
</div> </div>
<div nz-row [nzGutter]="4" style="padding-bottom: 10px"> <div nz-row [nzGutter]="4" class="padding-top-10 padding-bottom-10">
<div nz-col nzSpan="7"> <div nz-col nzSpan="7">
<ng-container *ngIf="echartType == 'history'"> <ng-container *ngIf="echartType == 'history'">
<nz-radio-group style="width: 100%;" [(ngModel)]="timeType" (ngModelChange)="changeType()" <nz-radio-group style="width: 100%;" [(ngModel)]="timeType" (ngModelChange)="changeType()">
[nzButtonStyle]="'solid'">
<label nz-radio-button nzValue="1">今天</label> <label nz-radio-button nzValue="1">今天</label>
<label nz-radio-button nzValue="2">昨天</label> <label nz-radio-button nzValue="2">昨天</label>
<label nz-radio-button nzValue="3">三天</label> <label nz-radio-button nzValue="3">三天</label>
......
<!--选择资产--> <!--选择资产-->
<nz-modal [nzMaskClosable]="false" [nzWidth]="880" [(nzVisible)]="isVisiable" [nzTitle]="title" (nzOnCancel)="handleEditCancel()" (nzOnOk)="handEditleOk()"> <nz-modal [nzMaskClosable]="false" [nzWidth]="880" [(nzVisible)]="isVisiable" [nzTitle]="title"
<div nz-form class="ant-advanced-search-form form-select"> (nzOnCancel)="handleEditCancel()" (nzOnOk)="handEditleOk()">
<div style="padding:10px 15px" class="ant-advanced-search-form form-select">
<div nz-row [nzGutter]="24"> <div nz-row [nzGutter]="24">
<div nz-col [nzSpan]="8"> <div nz-col [nzSpan]="8">
<nz-tree #nzTree <nz-tree #nzTree
...@@ -10,7 +11,7 @@ ...@@ -10,7 +11,7 @@
[nzCheckStrictly]="true" [nzCheckStrictly]="true"
(nzCheckBoxChange)="selectCheckTree($event)" (nzCheckBoxChange)="selectCheckTree($event)"
(nzClick)="mouseAction('click',$event)" (nzClick)="mouseAction('click',$event)"
(nzExpandChange)="mouseAction('expand',$event)" > (nzExpandChange)="mouseAction('expand',$event)">
</nz-tree> </nz-tree>
</div> </div>
...@@ -23,7 +24,8 @@ ...@@ -23,7 +24,8 @@
<th>资产编号</th> <th>资产编号</th>
<th>资产分类</th> <th>资产分类</th>
<th>资产名称</th> <th>资产名称</th>
<th nzShowCheckbox [(nzChecked)]="allChecked" [nzIndeterminate]="indeterminate" (nzCheckedChange)="checkAll($event)"></th> <th nzShowCheckbox [(nzChecked)]="allChecked" [nzIndeterminate]="indeterminate"
(nzCheckedChange)="checkAll($event)"></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
...@@ -31,7 +33,8 @@ ...@@ -31,7 +33,8 @@
<td>{{data.inventoryNo}}</td> <td>{{data.inventoryNo}}</td>
<td>{{data.invertoryname}}</td> <td>{{data.invertoryname}}</td>
<td>{{data.name}}</td> <td>{{data.name}}</td>
<td nzShowCheckbox [(nzChecked)]="data.checked" (nzCheckedChange)="selectItem(data,$event)"></td> <td nzShowCheckbox [(nzChecked)]="data.checked"
(nzCheckedChange)="selectItem(data,$event)"></td>
</tr> </tr>
</tbody> </tbody>
</nz-table> </nz-table>
......
...@@ -24,7 +24,10 @@ export class LinkInventoryComponent implements OnInit { ...@@ -24,7 +24,10 @@ export class LinkInventoryComponent implements OnInit {
} }
checkAll(value: boolean): void { checkAll(value: boolean): void {
this.invertoryList.forEach(data => data.checked = value); this.invertoryList.forEach(data => {
data.checked = value;
this.selectList.push(data);
});
this.refreshStatus(); this.refreshStatus();
} }
...@@ -35,15 +38,15 @@ export class LinkInventoryComponent implements OnInit { ...@@ -35,15 +38,15 @@ export class LinkInventoryComponent implements OnInit {
this.indeterminate = (!allChecked) && (!allUnChecked); this.indeterminate = (!allChecked) && (!allUnChecked);
} }
selectItem(item,e){ selectItem(item, e) {
if(e){ if (e) {
this.selectList.push(item); this.selectList.push(item);
}else{ } else {
this.selectList.forEach((value,index)=>{ this.selectList.forEach((value, index) => {
if(value.id == item.id){ if (value.id == item.id) {
this.selectList.splice(index,1) this.selectList.splice(index, 1);
} }
}) });
} }
this.refreshStatus(); this.refreshStatus();
} }
...@@ -78,9 +81,9 @@ export class LinkInventoryComponent implements OnInit { ...@@ -78,9 +81,9 @@ export class LinkInventoryComponent implements OnInit {
//获取下级---子分类 //获取下级---子分类
mouseAction(name: string, event: NzFormatEmitEvent) { mouseAction(name: string, event: NzFormatEmitEvent) {
if(name == "click"){ if (name == 'click') {
this.selectCheckTree(event); this.selectCheckTree(event);
}else{ } else {
const index = <any>event.node.key - 1; const index = <any>event.node.key - 1;
const pId = event.node.origin.id; const pId = event.node.origin.id;
this.workSer.findByParentidCount(pId).subscribe( this.workSer.findByParentidCount(pId).subscribe(
...@@ -120,12 +123,12 @@ export class LinkInventoryComponent implements OnInit { ...@@ -120,12 +123,12 @@ export class LinkInventoryComponent implements OnInit {
this.title = title; this.title = title;
} }
handleEditCancel(){ handleEditCancel() {
this.selectList = []; this.selectList = [];
this.isVisiable = false; this.isVisiable = false;
} }
handEditleOk(){ handEditleOk() {
this.isVisiable = false; this.isVisiable = false;
this.done.emit(this.selectList); this.done.emit(this.selectList);
} }
......
...@@ -40,7 +40,7 @@ export class LookPlanComponent implements OnInit { ...@@ -40,7 +40,7 @@ export class LookPlanComponent implements OnInit {
downLoad() { downLoad() {
this.workSer.downloadTemplate('plan', this.planId).subscribe( this.workSer.downloadTemplate('plan', this.planId).subscribe(
(data) => { (data) => {
this.commonSer.downloadFile(this.plan.fileName+".xlsx", data); this.commonSer.downloadFile(this.plan.fileName, data);
} }
); );
} }
......
...@@ -42,7 +42,7 @@ export class PlanModalComponent implements OnInit { ...@@ -42,7 +42,7 @@ export class PlanModalComponent implements OnInit {
this.participantsList = []; this.participantsList = [];
this.principalsList = []; this.principalsList = [];
this.validateForm = this.fb.group({ this.validateForm = this.fb.group({
title: ['', [Validators.required],Validators.maxLength(20)], title: ['', [Validators.required, Validators.maxLength(20)]],
typeId: [null, [Validators.required]], typeId: [null, [Validators.required]],
startTime: [null, [Validators.required]], startTime: [null, [Validators.required]],
endTime: [null, [Validators.required]], endTime: [null, [Validators.required]],
...@@ -50,7 +50,7 @@ export class PlanModalComponent implements OnInit { ...@@ -50,7 +50,7 @@ export class PlanModalComponent implements OnInit {
cycleNum: ['1'], cycleNum: ['1'],
number: [null, [Validators.required]], number: [null, [Validators.required]],
workload: [null], workload: [null],
description: [null,Validators.maxLength(100)], description: [null, Validators.maxLength(100)],
principals: [null, [Validators.required]], //负责人 principals: [null, [Validators.required]], //负责人
participants: [null, [Validators.required]], //参与人 participants: [null, [Validators.required]], //参与人
}); });
......
...@@ -78,9 +78,9 @@ ...@@ -78,9 +78,9 @@
<div nz-col nzSpan="4">处理结果</div> <div nz-col nzSpan="4">处理结果</div>
<div nz-col nzSpan="1"></div> <div nz-col nzSpan="1"></div>
<div nz-col nzSpan="19"> <div nz-col nzSpan="19">
<span *ngIf="event?.operateStatus == '0'">未解决</span> <nz-tag *ngIf="event?.operateStatus == '0'" [nzColor]="'#f50'">未解决</nz-tag>
<span *ngIf="event?.operateStatus == '1'">部分解决</span> <nz-tag *ngIf="event?.operateStatus == '1'" [nzColor]="'orange'">部分解决</nz-tag>
<span *ngIf="event?.operateStatus == '2'">已解决</span> <nz-tag *ngIf="event?.operateStatus == '2'" [nzColor]="'green'">已解决</nz-tag>
</div> </div>
</div> </div>
<div nz-row> <div nz-row>
...@@ -93,36 +93,67 @@ ...@@ -93,36 +93,67 @@
<div nz-row> <div nz-row>
<div nz-col nzSpan="4">关联资产</div> <div nz-col nzSpan="4">关联资产</div>
<div nz-col nzSpan="1"></div> <div nz-col nzSpan="1"></div>
<div nz-col nzSpan="19"> <div nz-col nzSpan="12">
<p *ngFor="let item of event?.inventorys;"> <table border="1" class="table-demo">
<span style="margin-right: 5px">{{item.inventoryNo}}</span> <thead>
<span style="margin-right: 5px">{{item.name}}</span> <tr>
<span>{{item.typeName}}</span> <th>资产编号</th>
</p> <th>资产名称</th>
<th>资产类型</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of event?.inventorys;">
<td>{{item.inventoryNo}}</td>
<td>{{item.name}}</td>
<td>{{item.typeName}}</td>
</tr>
</tbody>
</table>
</div> </div>
</div> </div>
<div nz-row> <div nz-row>
<div nz-col nzSpan="4">关联费用</div> <div nz-col nzSpan="4">关联费用</div>
<div nz-col nzSpan="1"></div> <div nz-col nzSpan="1"></div>
<div nz-col nzSpan="19"> <div nz-col nzSpan="12">
<p class="margin-bottom-10" *ngFor="let item of event?.eventCostList;let i = index"> <table border="1" class="table-demo">
<span class="margin-right-5"> <thead>
<tr>
<th>费用类别</th>
<th>费用金额</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of event?.eventCostList;">
<td>
<ng-container *ngIf="item.costTypeId == '0'">委外费用</ng-container> <ng-container *ngIf="item.costTypeId == '0'">委外费用</ng-container>
<ng-container *ngIf="item.costTypeId == '1'">物料费用</ng-container> <ng-container *ngIf="item.costTypeId == '1'">物料费用</ng-container>
<ng-container *ngIf="item.costTypeId == '2'">其他</ng-container> <ng-container *ngIf="item.costTypeId == '2'">其他</ng-container>
</span> </td>
<span class="margin-right-5">{{item.amount}}</span> <td>{{item.amount}}</td>
</p> </tr>
</tbody>
</table>
</div> </div>
</div> </div>
<div nz-row> <div nz-row>
<div nz-col nzSpan="4">违规通报</div> <div nz-col nzSpan="4">违规通报</div>
<div nz-col nzSpan="1"></div> <div nz-col nzSpan="1"></div>
<div nz-col nzSpan="19"> <div nz-col nzSpan="12">
<p class="margin-bottom-10" *ngFor="let item of event?.eventViolationVOList;let i = index"> <table border="1" class="table-demo">
<span class="margin-right-5">{{item.title}}</span> <thead>
<span class="margin-right-5">{{item.projectName}}</span> <tr>
</p> <th>标题</th>
<th>通报内容</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of event?.eventViolationVOList;">
<td>{{item.title}}</td>
<td>{{item.content}}</td>
</tr>
</tbody>
</table>
</div> </div>
</div> </div>
<div nz-row> <div nz-row>
......
...@@ -57,22 +57,13 @@ export class HandleDetailComponent implements OnInit { ...@@ -57,22 +57,13 @@ export class HandleDetailComponent implements OnInit {
ngOnInit() { ngOnInit() {
this.userName = this.$localStorage.retrieve('userInfo').userName; this.userName = this.$localStorage.retrieve('userInfo').userName;
this.getDetail(); this.getDetail();
this.findTransferAndInventory();
}
//详情
getDetail() {
this.workSer.findByNo(this.eventId).subscribe(
(res) => {
this.event = res.data;
}
);
} }
//查询事件流转信息 //查询事件流转信息
findTransferAndInventory() { getDetail(){
this.workSer.findTransferAndInventory(this.eventId).subscribe( this.workSer.findTransferAndInventory(this.eventId).subscribe(
(res) => { (res) => {
this.event = res.data;
this.transforsList = res.data.transfers; this.transforsList = res.data.transfers;
this.transforsList.forEach(e => { this.transforsList.forEach(e => {
e.operatorInfo = e.operatorInfo.replace(/\"/g, '').replace('{', '').replace('}', '').split(':'); e.operatorInfo = e.operatorInfo.replace(/\"/g, '').replace('{', '').replace('}', '').split(':');
...@@ -128,7 +119,7 @@ export class HandleDetailComponent implements OnInit { ...@@ -128,7 +119,7 @@ export class HandleDetailComponent implements OnInit {
} }
//返回上一页 //返回上一页
returnBack(){ returnBack() {
this.location.back(); this.location.back();
} }
} }
...@@ -99,40 +99,74 @@ ...@@ -99,40 +99,74 @@
</div> </div>
<div nz-row> <div nz-row>
<div nz-col nzSpan="5" class="line-height-32">关联资产:</div> <div nz-col nzSpan="5" class="line-height-32">关联资产:</div>
<div nz-col nzSpan="19"> <div nz-col nzSpan="12">
<button (click)="showInventoryModal()" nz-button><span>选择</span></button> <button (click)="showInventoryModal()" nz-button><span>选择</span></button>
<p class="margin-top-10" *ngFor="let item of linkList;let i = index"> <table *ngIf="linkList.length > 0" border="1" class="table-demo margin-top-10">
<span class="margin-right-5">{{item.inventoryNo}}</span> <thead>
<span class="margin-right-5">{{item.name}}</span> <tr>
<span>{{item.typename}}</span> <th>资产编号</th>
<i (click)="deleteInventory(i)" class="anticon anticon-close margin-right-5"></i> <th>资产名称</th>
</p> <th>操作</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of linkList;let i = index">
<td>{{item.inventoryNo}}</td>
<td>{{item.name}}</td>
<td><i (click)="deleteInventory(i)" class="anticon anticon-close-circle handle-delete"></i></td>
</tr>
</tbody>
</table>
</div> </div>
</div> </div>
<div nz-row> <div nz-row>
<div nz-col nzSpan="5" class="line-height-32">关联费用:</div> <div nz-col nzSpan="5" class="line-height-32">关联费用:</div>
<div nz-col nzSpan="19"> <div nz-col nzSpan="12">
<button (click)="showCostModal()" nz-button><span>添加</span></button> <button (click)="showCostModal()" nz-button><span>添加</span></button>
<p class="margin-top-10" *ngFor="let item of eventCostList;let i = index"> <table *ngIf="eventCostList.length > 0" border="1" class="table-demo margin-top-10">
<span class="margin-right-5"> <thead>
<tr>
<th>费用类别</th>
<th>费用金额</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of eventCostList;let i = index">
<td>
<ng-container *ngIf="item.costTypeId == '0'">委外费用</ng-container> <ng-container *ngIf="item.costTypeId == '0'">委外费用</ng-container>
<ng-container *ngIf="item.costTypeId == '1'">物料费用</ng-container> <ng-container *ngIf="item.costTypeId == '1'">物料费用</ng-container>
<ng-container *ngIf="item.costTypeId == '2'">其他</ng-container> <ng-container *ngIf="item.costTypeId == '2'">其他</ng-container>
</span> </td>
<span class="margin-right-5">{{item.amount}}</span> <td>{{item.amount}}</td>
<i (click)="deleteCost(i)" class="anticon anticon-close margin-right-5"></i> <td><i (click)="deleteCost(i)" class="anticon anticon-close-circle handle-delete"></i></td>
</p> </tr>
</tbody>
</table>
</div> </div>
</div> </div>
<div nz-row> <div nz-row>
<div nz-col nzSpan="5" class="line-height-32">违规通报:</div> <div nz-col nzSpan="5" class="line-height-32">违规通报:</div>
<div nz-col nzSpan="19"> <div nz-col nzSpan="12">
<button (click)="showNotiModal()" nz-button><span>添加</span></button> <button (click)="showNotiModal()" nz-button><span>添加</span></button>
<p class="margin-top-10" *ngFor="let item of eventViolationVOList;let i = index"> <table *ngIf="eventViolationVOList.length > 0" border="1" class="table-demo margin-top-10">
<span class="margin-right-5">{{item.title}}</span> <thead>
<span class="margin-right-5">{{item.projectName}}</span> <tr>
<i (click)="deleteNoti(i)" class="anticon anticon-close margin-right-5"></i> <th>通报标题</th>
</p> <th>关联项目</th>
<th>通报内容</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of eventViolationVOList;let i = index">
<td>{{item.title}}</td>
<td>{{item.projectName}}</td>
<td>{{item.content}}</td>
<td><i (click)="deleteNoti(i)" class="anticon anticon-close-circle handle-delete"></i></td>
</tr>
</tbody>
</table>
</div> </div>
</div> </div>
<div nz-row> <div nz-row>
......
...@@ -61,22 +61,13 @@ export class HandleEventComponent implements OnInit { ...@@ -61,22 +61,13 @@ export class HandleEventComponent implements OnInit {
ngOnInit() { ngOnInit() {
this.getDetail(); this.getDetail();
this.findTransferAndInventory();
}
//事件详情
getDetail() {
this.workSer.findByNo(this.eventId).subscribe(
(res) => {
this.event = res.data;
}
);
} }
//查询事件流转信息 //查询事件流转信息
findTransferAndInventory() { getDetail() {
this.workSer.findTransferAndInventory(this.eventId).subscribe( this.workSer.findTransferAndInventory(this.eventId).subscribe(
(res) => { (res) => {
this.event = res.data;
this.transforsList = res.data.transfers; this.transforsList = res.data.transfers;
this.transforsList.forEach(e => { this.transforsList.forEach(e => {
e.operatorInfo = e.operatorInfo.replace(/\"/g, '').replace('{', '').replace('}', '').split(':'); e.operatorInfo = e.operatorInfo.replace(/\"/g, '').replace('{', '').replace('}', '').split(':');
...@@ -207,8 +198,9 @@ export class HandleEventComponent implements OnInit { ...@@ -207,8 +198,9 @@ export class HandleEventComponent implements OnInit {
deleteNoti(i) { deleteNoti(i) {
this.eventViolationVOList.splice(i, 1); this.eventViolationVOList.splice(i, 1);
} }
//返回上一页 //返回上一页
returnBack(){ returnBack() {
this.location.back(); this.location.back();
} }
} }
...@@ -277,23 +277,7 @@ ui bootstrap tweaks ...@@ -277,23 +277,7 @@ ui bootstrap tweaks
background-size: cover; background-size: cover;
} }
@keyframes rotateplane {
0% {
transform: rotateX(0);
}
25% {
transform: rotateX(90deg);
}
50% {
transform: rotateY(0deg);
}
75% {
transform: rotateY(90deg);
}
100% {
transform: rotate3d(0, 0, 0, 0);
}
}
/* jhipster-needle-css-add-main JHipster will add new css style */ /* jhipster-needle-css-add-main JHipster will add new css style */
.padding-0 { .padding-0 {
...@@ -468,4 +452,38 @@ ui bootstrap tweaks ...@@ -468,4 +452,38 @@ ui bootstrap tweaks
.ant-modal-body > .ant-tabs { .ant-modal-body > .ant-tabs {
margin: 15px; margin: 15px;
} }
.has-error .ant-form-explain, .has-error .ant-form-split{
font-size:12px;
}
table.table-demo {
width: 100%;
}
.table-demo td {
text-align: center;
height: 30px;
padding: 2px;
}
.table-demo th {
text-align: center;
height: 30px;
padding: 2px;
}
@keyframes rotateplane {
0% {
transform: rotateX(0);
}
25% {
transform: rotateX(90deg);
}
50% {
transform: rotateY(0deg);
}
75% {
transform: rotateY(90deg);
}
100% {
transform: rotate3d(0, 0, 0, 0);
}
}
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