jingbowen 3 years ago
parent
commit
f5df10c3f9
  1. 8
      src/app/pages/audit/audit-ing/audit-ing.component.html
  2. 10
      src/app/pages/audit/audit-ing/audit-ing.component.ts
  3. 8
      src/app/pages/audit/audit-record/audit-record.component.html
  4. 2
      src/app/pages/audit/audit-record/audit-record.component.ts
  5. 90
      src/app/pages/audit/gas-base-info/gas-base-info.component.html
  6. 44
      src/app/pages/audit/gas-base-info/gas-base-info.component.scss
  7. 34
      src/app/pages/audit/gas-base-info/gas-base-info.component.ts
  8. 444
      src/app/pages/oil-station-info/oil-station-info.component.html
  9. 101
      src/app/pages/oil-station-info/oil-station-info.component.scss
  10. 121
      src/app/pages/oil-station-info/oil-station-info.component.ts
  11. 3
      src/app/pages/plan-admin/oil-station-list/oil-station-list.component.ts
  12. 2
      src/theme.less

8
src/app/pages/audit/audit-ing/audit-ing.component.html

@ -8,8 +8,8 @@
<span style="margin-left: 30px;">审批类型</span>
</th>
<th>审批信息</th>
<th>油站名称</th>
<th [nzWidth]="'16%'">区域名称</th>
<th *ngIf="level != 1 ">油站名称</th>
<th [nzWidth]="'16%'" *ngIf="level != 1 ">区域名称</th>
<th>公司名称</th>
<!-- <th>提交时间</th> -->
<th>审批状态</th>
@ -28,8 +28,8 @@
<span *ngIf="item.auditType == 3">资产类证照</span>
<span *ngIf="item.auditType == 4">用户信息</span>
</td>
<td><label *ngIf="item.gasStation">{{item.gasStation.stationName}}</label></td>
<td><label *ngIf="item.gasStation">{{item.gasStation.locationName}}</label></td>
<td *ngIf="level != 1 "><label *ngIf="item.gasStation">{{item.gasStation.stationName}}</label></td>
<td *ngIf="level != 1 "><label *ngIf="item.gasStation">{{item.gasStation.locationName}}</label></td>
<td>
<ng-container *ngIf="item.gasStation; else elseTemplate">
<label>{{item.gasStation.companyName}}</label>

10
src/app/pages/audit/audit-ing/audit-ing.component.ts

@ -23,6 +23,8 @@ export class AuditIngComponent implements OnInit {
tableScrollHeight
resizeListener
level
ngOnInit(): void {
this.tableScrollHeight = '100px'
// 页面监听
@ -31,6 +33,8 @@ export class AuditIngComponent implements OnInit {
this.tableScrollHeight = (document.getElementById('tablebox').clientHeight - tableHeader - 10) + 'px'
});
this.getStationList()
this.level = JSON.parse(sessionStorage.getItem('userdata')).organization.level
}
ngOnDestroy(): void {
this.resizeListener.unsubscribe()
@ -81,9 +85,9 @@ export class AuditIngComponent implements OnInit {
dispose(item) {
console.log(item)
// console.log(item)
this.getData(item).then(res => {
console.log('审批具体信息', res)
// console.log('审批具体信息', res)
item.getData = res
const modal = this.modal.create({
nzContent: AuditDisposeComponent,
@ -189,6 +193,8 @@ export class AuditIngComponent implements OnInit {
}
return new Promise((resolve, reject) => {
let params = { id: item.itemId }
console.log('xxxxxxxxxxxxxxx走着了吗')
this.http.get(url, { params }).subscribe((data: any) => {
let auditLog = { rejectReason: item.rejectReason }
let organization = { displayName: item.organization ? item.organization.displayName : "" }

8
src/app/pages/audit/audit-record/audit-record.component.html

@ -95,8 +95,8 @@
<span style="margin-left: 30px;">审批类型</span>
</th>
<th>审批信息</th>
<!-- <th>油站名称</th>
<th [nzWidth]="'16%'">区域</th> -->
<th *ngIf="!level">油站名称</th>
<th *ngIf="!level">区域名称</th>
<th>公司名称</th>
<th>申请人</th>
<th>审批时间</th>
@ -118,8 +118,8 @@
<span *ngIf="item.auditType == 3">资产类证照</span>
<span *ngIf="item.auditType == 4">用户信息</span>
</td>
<!-- <td><label *ngIf="item.gasStation">{{item.gasStation.stationName}}</label></td>
<td><label *ngIf="item.gasStation">{{item.gasStation.locationName}}</label></td> -->
<td *ngIf="!level"><label *ngIf="item.gasStation">{{item.gasStation.stationName}}</label></td>
<td *ngIf="!level"><label *ngIf="item.gasStation">{{item.gasStation.locationName}}</label></td>
<td nzEllipsis>
<ng-container *ngIf="item.gasStation; else elseTemplate">
<label [title]="item.gasStation.companyName">{{item.gasStation.companyName}}</label>

2
src/app/pages/audit/audit-record/audit-record.component.ts

@ -173,6 +173,8 @@ export class AuditRecordComponent implements OnInit {
this.typeList = this.typeListOfUpdate
} else if (e == '3') {
this.typeList = this.typeListOfFile
} else if (e == '4') {
this.typeList = this.typeListOfUsers
} else {
this.typeList = [...this.typeListOfStationData, ...this.typeListOfUpdate, ...this.typeListOfFile]
}

90
src/app/pages/audit/gas-base-info/gas-base-info.component.html

@ -1,4 +1,4 @@
<div [ngStyle]="{'padding': isDetails? '0 15px' : null}">
<div [ngStyle]="{'padding': isDetails? '0 15px' : null,'maxHeight': isDetails? '700px' : '520px'}" class="box">
<div class="title" *ngIf="isDetails">
<div class="titlecontent">
详情
@ -12,7 +12,8 @@
</p>
<div class="cutoffrule"></div>
<p>
<label class="marginLeft">油站类型: &nbsp;&nbsp;<span *ngIf="baseInfo.stationType == 0">自营</span><span *ngIf="baseInfo.stationType == 1">加盟</span><span *ngIf="baseInfo.stationType == 2">其他</span></label>
<label class="marginLeft">油站类型: &nbsp;&nbsp;<span *ngIf="baseInfo.stationType == 0">自营</span><span
*ngIf="baseInfo.stationType == 1">加盟</span><span *ngIf="baseInfo.stationType == 2">其他</span></label>
<label>车道数量: &nbsp;&nbsp;{{baseInfo.laneCount}}</label>
</p>
<div class="cutoffrule"></div>
@ -75,6 +76,91 @@
<div class="cutoffrule"></div>
</div>
<div *ngIf="!baseInfo.hasBuildingInfo && otherData">
<p class="yellowColor" *ngIf="otherData.oilingMachine && otherData.oilingMachine.length != 0">加油机</p>
<div *ngFor="let item of otherData.oilingMachine">
<p>
<label class="marginLeft2">加油机名称: &nbsp;&nbsp;{{item.name}}</label>
</p>
<p>
<label class="marginLeft">品牌: &nbsp;&nbsp;{{item.brand}}</label>
<label>油枪数量: &nbsp;&nbsp;{{item.oilGunNum}}</label>
</p>
<p>
<label class="marginLeft">油品品号: &nbsp;&nbsp;{{item.oilsArticleNum}}</label>
<label>油枪编号: &nbsp;&nbsp;{{item.oilGunSerialNum}}</label>
</p>
<div class="cutoffrule"></div>
</div>
<p class="yellowColor" *ngIf="otherData.tankEquipment && otherData.tankEquipment.length != 0">油罐设备</p>
<div *ngFor="let item of otherData.tankEquipment">
<p>
<label class="marginLeft2">油罐设备名称: &nbsp;&nbsp;{{item.name}}</label>
</p>
<p>
<label class="marginLeft">油品品号: &nbsp;&nbsp;{{item.oilsArticleNum}}</label>
<label>油枪编号: &nbsp;&nbsp;{{item.oilGunSerialNum}}</label>
</p>
<p>
<label class="marginLeft">油罐容积: &nbsp;&nbsp;{{item.oilOmeterVolume}}</label>
<label>安全容积: &nbsp;&nbsp;{{item.safetyVolume}}</label>
</p>
<p>
<label class="marginLeft">油罐类型: &nbsp;&nbsp;{{item.oilOmeterType == 0 ? '双层罐' : '单层罐+防渗罐池'}}</label>
<label>油泵类型: &nbsp;&nbsp;{{item.oilPumpType == 0 ? '自吸泵' : '潜油泵'}}</label>
</p>
<div class="cutoffrule"></div>
</div>
<p class="yellowColor" *ngIf="otherData.oilDeliveryPipe && otherData.oilDeliveryPipe.length != 0">输油管</p>
<div *ngFor="let item of otherData.oilDeliveryPipe">
<p>
<label class="marginLeft2">油罐设备名称: &nbsp;&nbsp;{{item.name}}</label>
</p>
<p>
<label class="marginLeft">连接的加油机: &nbsp;&nbsp;{{item.connectTanker}}</label>
<label>连接的油罐: &nbsp;&nbsp;{{item.connectOilTank}}</label>
</p>
<p>
<label class="marginLeft2">设计图纸: &nbsp;&nbsp;
<img (click)="viewImg(item.designPaper)" [src]="item.designPaper" alt="">
</label>
</p>
<div class="cutoffrule"></div>
</div>
<p class="yellowColor">油气回收</p>
<div *ngFor="let item of otherData.oilVaporRecovery">
<p>
<label class="marginLeft">油气回收名称: &nbsp;&nbsp;{{item.name}}</label>
<label>一次油气回收系统类型: &nbsp;&nbsp;{{item.onceSystemType}}</label>
</p>
<p>
<label class="marginLeft">二次油气回收系统类型: &nbsp;&nbsp;{{item.twiceSystemType == 0 ? '分散式' : '集中式'}}</label>
<label>二次油气回收泵类型: &nbsp;&nbsp;{{item.twicePumpType}}</label>
</p>
<p>
<label class="marginLeft">三次油气回收处理装置: &nbsp;&nbsp;{{item.thriceProcessingUnit}}</label>
<label>油气回收在线监测装置: &nbsp;&nbsp;{{item.monitoringDevice}}</label>
</p>
<p>
<label class="marginLeft2">设计图纸: &nbsp;&nbsp;
<img (click)="viewImg(item.designPaper)" [src]="item.designPaper" alt="">
</label>
</p>
<div class="cutoffrule"></div>
</div>
<p class="yellowColor">阀门</p>
<div *ngFor="let item of otherData.valve">
<p>
<label class="marginLeft2">阀门名称: &nbsp;&nbsp;{{item.name}}</label>
</p>
<p>
<label class="marginLeft2">详情: &nbsp;&nbsp;{{item.description}}</label>
</p>
<div class="cutoffrule"></div>
</div>
</div>
<!-- <p class="recordP" *ngIf="isDetails">
<span>审核记录</span>
<span>

44
src/app/pages/audit/gas-base-info/gas-base-info.component.scss

@ -1,18 +1,59 @@
.box {
max-height: 520px;
overflow-y: auto;
}
::-webkit-input-placeholder {
/* WebKit browsers */
color: #345d85;
}
//滚动条样式
::-webkit-scrollbar {
width: 5px;
}
::-webkit-scrollbar-thumb {
background-image: linear-gradient(#2495f8, #1c73c2, #0a3d6a, #061d3c);
}
::-webkit-scrollbar-track {
background-color: #061d3c;
}
p {
margin-bottom: 0;
color: #C4E2FC;
margin: 10px 0;
img {
width: 88px;
height: 56px;
cursor: pointer;
}
}
label{ display: inline-block; vertical-align: middle; }
label {
display: inline-block;
vertical-align: middle;
}
.marginLeft {
width: 55%;
overflow: hidden;
}
.marginLeft2 {
width: 100%;
overflow: hidden;
img {
width: 120px;
height: 80px;
}
}
.title {
font-family: sybold;
width: 100%;
@ -40,6 +81,7 @@ label{ display: inline-block; vertical-align: middle; }
cursor: pointer;
}
}
.recordP {
display: flex;
justify-content: space-between;

34
src/app/pages/audit/gas-base-info/gas-base-info.component.ts

@ -1,7 +1,7 @@
import { HttpClient } from '@angular/common/http';
import { Component, Input, OnInit } from '@angular/core';
import { NzModalRef } from 'ng-zorro-antd/modal';
import Viewer from 'viewerjs';
@Component({
selector: 'app-gas-base-info',
templateUrl: './gas-base-info.component.html',
@ -12,6 +12,7 @@ export class GasBaseInfoComponent implements OnInit {
constructor(private modal: NzModalRef, private http: HttpClient) { }
@Input() data?: any;
@Input() url?: any;
isDetails: boolean = false; //是否是详情
ngOnInit(): void {
@ -24,14 +25,39 @@ export class GasBaseInfoComponent implements OnInit {
baseInfo: any = {
stationType: null,
}
otherData
getBaseInfo() {
let params = { organizationUnitId: this.data.organizationId }
this.http.get('/api/services/app/GasStation/Get',{params}).subscribe((data: any)=>{
let params
let httpUrl
this.url ? httpUrl = this.url : httpUrl = '/api/services/app/GasStation/Get'
this.url ? params = { orgId: this.data.organizationId } : params = { organizationUnitId: this.data.organizationId }
this.http.get(httpUrl, { params }).subscribe((data: any) => {
data.result.govUnitDetail ? data.result.govUnitDetail = JSON.parse(data.result.govUnitDetail) : null;
this.baseInfo = data.result
this.baseInfo.otherData ? this.otherData = JSON.parse(this.baseInfo.otherData) : null
console.log('otherData', this.otherData)
})
}
//查看图片
viewImg(url) {
let dom = document.getElementById(`viewerjs`)
let pObjs = dom.childNodes;
let node = document.createElement("img")
node.style.display = "none";
node.src = url;
node.id = 'img'
dom.appendChild(node)
setTimeout(() => {
let viewer = new Viewer(document.getElementById(`viewerjs`), {
hidden: () => {
dom.removeChild(pObjs[0]);
viewer.destroy();
}
});
node.click();
}, 0);
}
destroyModal() {
this.modal.destroy({ data: 'this the result data' });
}

444
src/app/pages/oil-station-info/oil-station-info.component.html

@ -84,7 +84,7 @@
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input required [(ngModel)]="httpBody.companyName" nz-input type="text"
<input [(ngModel)]="httpBody.companyName" nz-input type="text"
formControlName="companyName" />
</nz-input-group>
</nz-form-control>
@ -301,136 +301,410 @@
</td>
</tr>
</table>
<!-- 审核中遮罩层 -->
<div class="shade" *ngIf="httpBody.auditStatus == 1 || httpBody.auditStatus == 2">
审核中...
<div class="otherInfo" *ngIf="!httpBody.hasBuildingInfo">
<!-- 加油机 -->
<div class="otherInfoItem oilingMachine">
<div class="moduleName">
<span>加油机</span>
<button (click)="addTable(otherInfoData.oilingMachine,'oilingMachine')" type="button" nz-button
nzType="primary" class="buleBtn">新增</button>
</div>
<!-- <table class="imgtable" id="images">
<tr *ngFor="let item of httpBody.licenses;let key = index">
<td class="head" [title]="item.name">{{item.name}}</td>
<td colspan="3" class="imgbox">
<div class="timeDiv">
<div class="timeDivflex">
<div class="itemname">
证件编号:<span style="color: red;">*</span>
</div>
<nz-form-item title="证件编号">
<table *ngFor="let item of otherInfoData.oilingMachine;let key = index">
<tr>
<td class="head">加油机名称</td>
<td class="text" colspan="3">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input style="border: 1px solid #91CCFF" [ngModelOptions]="{standalone: true}"
placeholder="请输入证件编号" [(ngModel)]="item.code" nz-input type="text" />
<input [(ngModel)]="item.name" [ngModelOptions]="{standalone: true}" nz-input type="text" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</div>
<div class="timeDivflex">
<div class="itemname">
证照有效期:<span style="color: red;">*</span>
</div>
<label style="color: white;" [ngModelOptions]="{standalone: true}" nz-checkbox
[(ngModel)]="item.isPerpetual" (ngModelChange)="perpetualChange(item,$event)">是否为长期证照</label>
<nz-form-item style="border: 1px solid #91CCFF" title="证照有效期开始时间">
</td>
</tr>
<tr>
<td class="head">品牌</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-date-picker required [ngModelOptions]="{standalone: true}" [nzPlaceHolder]="'开始时间'"
[(ngModel)]="item.startTime" (ngModelChange)="onChange($event)"></nz-date-picker>
<nz-input-group>
<input [(ngModel)]="item.brand" nz-input type="text" [ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
<nz-form-item style="border: 1px solid #91CCFF" title="证照有效期结束时间" *ngIf="!item.isPerpetual">
</td>
<td class="head">油枪数量</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-date-picker [ngModelOptions]="{standalone: true}" [nzPlaceHolder]="'结束时间'"
[(ngModel)]="item.endTime" (ngModelChange)="onChange($event)"></nz-date-picker>
<nz-input-group>
<input [(ngModel)]="item.oilGunNum" nz-input type="text"
[ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
</tr>
<tr>
<td class="head">油品品号</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input [(ngModel)]="item.oilsArticleNum" nz-input type="text"
[ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
<td class="head">油枪编号</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input [(ngModel)]="item.oilGunSerialNum" nz-input type="text"
[ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
</tr>
<a class="deleteTable" nz-popconfirm nzPopconfirmTitle="确定删除吗?" nzPopconfirmPlacement="bottom"
(nzOnConfirm)="deleteTable(otherInfoData.oilingMachine,key)">
<i nz-icon nzType="delete" nzTheme="outline"></i>
</a>
</table>
</div>
<div class="timeDivflex">
<div class="itemname">
证照提醒时间:<span style="color: red;">*</span>
<!-- 油罐设备 -->
<div class="otherInfoItem tankEquipment">
<div class="moduleName">
<span>油罐设备</span>
<button (click)="addTable(otherInfoData.tankEquipment,'tankEquipment')" type="button" nz-button
nzType="primary" class="buleBtn">新增</button>
</div>
<nz-form-item style="border: 1px solid #91CCFF" title="证照到期第一次提醒时间">
<table *ngFor="let item of otherInfoData.tankEquipment;let key = index">
<tr>
<td class="head">油罐设备名称</td>
<td class="text" colspan="3">
<nz-form-item>
<nz-form-control>
<nz-date-picker [ngModelOptions]="{standalone: true}" [nzPlaceHolder]="'一次提醒时间'"
[(ngModel)]="item.firstWarnTime" (ngModelChange)="onChange($event)"></nz-date-picker>
<nz-input-group>
<input [(ngModel)]="item.name" [ngModelOptions]="{standalone: true}" nz-input type="text" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
<nz-form-item style="border: 1px solid #91CCFF" title="证照到期第二次提醒时间">
</td>
</tr>
<tr>
<td class="head">油品品号</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-date-picker [ngModelOptions]="{standalone: true}" [nzPlaceHolder]="'二次提醒时间'"
[(ngModel)]="item.secondWarnTime" (ngModelChange)="onChange($event)"></nz-date-picker>
<nz-input-group>
<input [(ngModel)]="item.oilsArticleNum" nz-input type="text"
[ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
<td class="head">油枪编号</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input [(ngModel)]="item.oilGunSerialNum" nz-input type="text"
[ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
</tr>
<tr>
<td class="head">油罐容积</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input [(ngModel)]="item.oilOmeterVolume" nz-input type="text"
[ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
<td class="head">安全容积</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input [(ngModel)]="item.safetyVolume" nz-input type="text"
[ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
</tr>
<tr>
<td class="head">油罐类型</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-select [(ngModel)]="item.oilOmeterType" [ngModelOptions]="{standalone: true}">
<nz-option [nzValue]=0 nzLabel="双层罐"></nz-option>
<nz-option [nzValue]=1 nzLabel="单层罐+防渗罐池"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
</td>
<td class="head">油泵类型</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-select [(ngModel)]="item.oilPumpType" [ngModelOptions]="{standalone: true}">
<nz-option [nzValue]=0 nzLabel="自吸泵"></nz-option>
<nz-option [nzValue]=1 nzLabel="潜油泵"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
</td>
</tr>
<a class="deleteTable" nz-popconfirm nzPopconfirmTitle="确定删除吗?" nzPopconfirmPlacement="bottom"
(nzOnConfirm)="deleteTable(otherInfoData.tankEquipment,key)">
<i nz-icon nzType="delete" nzTheme="outline"></i>
</a>
</table>
</div>
<div class="timeDivflex">
<div class="itemname">
证照年检时间:<span style="color: red;">*</span>
<!-- 输油管 -->
<div class="otherInfoItem oilDeliveryPipe">
<div class="moduleName">
<span>输油管</span>
<button (click)="addTable(otherInfoData.oilDeliveryPipe,'oilDeliveryPipe')" type="button" nz-button
nzType="primary" class="buleBtn">新增</button>
</div>
<label style="color: white;" [ngModelOptions]="{standalone: true}" nz-checkbox
[(ngModel)]="item.hasAnnualInspection">是否年检</label>
<nz-form-item style="border: 1px solid #91CCFF" title="年检时间" *ngIf="item.hasAnnualInspection">
<table *ngFor="let item of otherInfoData.oilDeliveryPipe;let key = index">
<tr>
<td class="head">输油管名称</td>
<td class="text" colspan="3">
<nz-form-item>
<nz-form-control>
<nz-date-picker [ngModelOptions]="{standalone: true}" [nzPlaceHolder]="'年检时间'"
[(ngModel)]="item.annualInspectionTime" (ngModelChange)="onChange($event)"></nz-date-picker>
<nz-input-group>
<input [(ngModel)]="item.name" [ngModelOptions]="{standalone: true}" nz-input type="text" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
<nz-form-item style="border: 1px solid #91CCFF" title="年检提醒时间" *ngIf="item.hasAnnualInspection">
</td>
</tr>
<tr>
<td class="head">连接的加油机</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-date-picker [ngModelOptions]="{standalone: true}" [nzPlaceHolder]="'年检提醒时间'"
[(ngModel)]="item.annualInspectionWarnTime" (ngModelChange)="onChange($event)">
</nz-date-picker>
<nz-input-group>
<input [(ngModel)]="item.connectTanker" nz-input type="text"
[ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
<nz-form-item title="年检机构" *ngIf="item.hasAnnualInspection">
</td>
<td class="head">连接的油罐</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input style="border: 1px solid #91CCFF" [ngModelOptions]="{standalone: true}"
placeholder="年检机构" [(ngModel)]="item.annualInspectionOrganizationName" nz-input
type="text" />
<input [(ngModel)]="item.connectOilTank" nz-input type="text"
[ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
</tr>
<tr>
<td class="head">设计图纸</td>
<td class="text" colspan="3">
<div class="uploadDivbox">
<div class="uploadDiv" style="margin:0 12px;">
<img (click)="viewImg(item.designPaper)" *ngIf=" item.designPaper"
style="width: 100%;height: 100%;" [src]="item.designPaper" alt="">
<input *ngIf="!item.designPaper" (change)="filechange($event,key,item)" class="fileinput"
type="file" name="" id="">
<button *ngIf="!item.designPaper" nz-button [nzLoading]=""><i nz-icon nzType="upload"
nzTheme="outline"></i>上传图纸</button>
</div>
<div class="uploadDiv" *ngIf="item.designPaper">
<input (change)="filechange($event,key,item)" class="fileinput" type="file" name="" id="">
<button nz-button [nzLoading]=""><i nz-icon nzType="upload" nzTheme="outline"></i>重新上传</button>
</div>
<div class="uploadDivbox">
<div class="itemname">
证照图片:
</div>
<div class="uploadDiv">
<img *ngIf="item.imageUrl" style="width: 100%;height: 100%;" [src]="item.imageUrl" alt="">
<input *ngIf="!item.imageUrl" (change)="filechange($event,key)" class="fileinput" type="file"
name="" id="">
<button *ngIf="!item.imageUrl" nz-button [nzLoading]=""><i nz-icon nzType="upload"
nzTheme="outline"></i>上传图片</button>
</td>
</tr>
<a class="deleteTable" nz-popconfirm nzPopconfirmTitle="确定删除吗?" nzPopconfirmPlacement="bottom"
(nzOnConfirm)="deleteTable(otherInfoData.oilDeliveryPipe,key)">
<i nz-icon nzType="delete" nzTheme="outline"></i>
</a>
</table>
</div>
<!-- 油气回收 -->
<div class="otherInfoItem oilVaporRecovery">
<div class="moduleName">
<span>油气回收</span>
<!-- <button (click)="addTable(otherInfoData.oilVaporRecovery,'oilVaporRecovery')" type="button" nz-button
nzType="primary" class="buleBtn">新增</button> -->
</div>
<table *ngFor="let item of otherInfoData.oilVaporRecovery;let key = index">
<tr>
<td class="head">油气回收名称</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input [(ngModel)]="item.name" [ngModelOptions]="{standalone: true}" nz-input type="text" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
<td class="head">一次油气回收系统类型</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input [(ngModel)]="item.onceSystemType" [ngModelOptions]="{standalone: true}" nz-input
type="text" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
</tr>
<tr>
<td class="head">二次油气回收系统类型</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-select [(ngModel)]="item.twiceSystemType" [ngModelOptions]="{standalone: true}">
<nz-option [nzValue]=0 nzLabel="分散式"></nz-option>
<nz-option [nzValue]=1 nzLabel="集中式"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
</td>
<td class="head">二次油气回收泵类型</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input [(ngModel)]="item.twicePumpType" nz-input type="text"
[ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
</tr>
<tr>
<td class="head">三次油气回收处理装置</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input [(ngModel)]="item.thriceProcessingUnit" nz-input type="text"
[ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
<td class="head">油气回收在线监测装置</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input [(ngModel)]="item.monitoringDevice" nz-input type="text"
[ngModelOptions]="{standalone: true}" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
</tr>
<tr>
<td class="head">设计图纸</td>
<td class="text" colspan="3">
<div class="uploadDivbox">
<div class="uploadDiv" style="margin:0 12px;">
<img (click)="viewImg(item.designPaper)" *ngIf="item.designPaper"
style="width: 100%;height: 100%;" [src]="item.designPaper" alt="">
<input *ngIf="!item.designPaper" (change)="filechange($event,key,item)" class="fileinput"
type="file" name="" id="">
<button *ngIf="!item.designPaper" nz-button [nzLoading]=""><i nz-icon nzType="upload"
nzTheme="outline"></i>上传图纸</button>
</div>
<div class="uploadDiv" *ngIf="item.imageUrl">
<input (change)="filechange($event,key)" class="fileinput" type="file" name="" id="">
<div class="uploadDiv" *ngIf="item.designPaper">
<input (change)="filechange($event,key,item)" class="fileinput" type="file" name="" id="">
<button nz-button [nzLoading]=""><i nz-icon nzType="upload" nzTheme="outline"></i>重新上传</button>
</div>
</div>
<a class="deleteTr" nz-popconfirm nzPopconfirmTitle="确定删除该证照吗?" nzPopconfirmPlacement="bottom"
(nzOnConfirm)="deleteTrConfirm(key)">
<i *ngIf="item.name != '营业执照' && item.name != '危险化学品' && item.name != '成品油零售'" nz-icon nzType="close"
nzTheme="outline"></i>
</a>
</td>
</tr>
<tr style="height: 50px;">
<td colspan="4">
<i style="cursor: pointer;" nz-icon nzType="plus" nzTheme="outline" (click)="showModal()"></i>
<nz-modal [nzWidth]="380" [(nzVisible)]="isVisible" nzTitle="新增证照" (nzOnCancel)="handleCancel()"
(nzOnOk)="handleOk()">
<input [ngModelOptions]="{standalone: true}" nz-input placeholder="请输入证照名称" [(ngModel)]="addName" />
</nz-modal>
<!-- <a class="deleteTable" nz-popconfirm nzPopconfirmTitle="确定删除吗?" nzPopconfirmPlacement="bottom"
(nzOnConfirm)="deleteTable(otherInfoData.oilVaporRecovery,key)">
<i nz-icon nzType="delete" nzTheme="outline"></i>
</a> -->
</table>
</div>
<!-- 阀门 -->
<div class="otherInfoItem valve">
<div class="moduleName">
<span>阀门</span>
<!-- <button (click)="addTable(otherInfoData.valve,'valve')" type="button" nz-button
nzType="primary" class="buleBtn">新增</button> -->
</div>
<table *ngFor="let item of otherInfoData.valve;let key = index">
<tr>
<td class="head">阀门名称</td>
<td class="text" colspan="3">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<input [(ngModel)]="item.name" [ngModelOptions]="{standalone: true}" nz-input type="text" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
<td class="head">描述</td>
<td class="text">
<nz-form-item>
<nz-form-control>
<nz-input-group>
<textarea style="text-align: left;" rows="4" nz-input [(ngModel)]="item.description"
[ngModelOptions]="{standalone: true}"></textarea>
</nz-input-group>
</nz-form-control>
</nz-form-item>
</td>
</tr>
</table> -->
<!-- <a class="deleteTable" nz-popconfirm nzPopconfirmTitle="确定删除吗?" nzPopconfirmPlacement="bottom"
(nzOnConfirm)="deleteTable(otherInfoData.valve,key)">
<i nz-icon nzType="delete" nzTheme="outline"></i>
</a> -->
</table>
</div>
</div>
<!-- 审核中遮罩层 -->
<div class="shade" *ngIf="httpBody.auditStatus == 1 || httpBody.auditStatus == 2">
审核中...
</div>
<!-- 上传图片 -->
<div class="shade" *ngIf="isUploadLoading">
<nz-spin nzSimple [nzSize]="'large'"></nz-spin>
</div>
</div>
<div class="btnbox">
<!-- <span style="color: #fff;">当前审核状态:{{httpBody.auditStatus | auditStatus}}</span> -->
<span style="color: #fff;margin-right: 30px;">当前审核状态:{{httpBody.auditLog.auditStatusDesc}}</span>
<span style="color: #fff;">审核意见:{{httpBody.auditLog.rejectReason}}</span>
<button [nzLoading]="isSubmitAuditLoading" nz-button type="button" *ngIf="httpBody.auditStatus != 1 && httpBody.auditStatus != 2" (click)="submitAudit()">提交审核</button>
<button [nzLoading]="isRevocationAuditLoading" nz-button type="button" *ngIf="httpBody.auditStatus == 1 || httpBody.auditStatus == 2" (click)="revocationAudit()">撤销审核</button>
<button [nzLoading]="isLoadingSave" nz-button type="button" (click)="submitForm()" *ngIf="httpBody.auditStatus != 1" >保存</button>
<span *ngIf="httpBody.auditLog"
style="color: #fff;margin-right: 30px;">当前审核状态:{{httpBody.auditLog.auditStatusDesc}}</span>
<span *ngIf="httpBody.auditLog" style="color: #fff;">审核意见:{{httpBody.auditLog.rejectReason}}</span>
<button [nzLoading]="isSubmitAuditLoading" nz-button type="button"
*ngIf="httpBody.auditStatus != 1 && httpBody.auditStatus != 2" (click)="submitAudit()">提交审核</button>
<button [nzLoading]="isRevocationAuditLoading" nz-button type="button"
*ngIf="httpBody.auditStatus == 1 || httpBody.auditStatus == 2" (click)="revocationAudit()">撤销审核</button>
<button [nzLoading]="isLoadingSave" nz-button type="button" (click)="submitForm()"
*ngIf="httpBody.auditStatus != 1">保存</button>
<button (click)="exportExcel()" nz-button type="button"><img style="vertical-align: top;margin-right: 6px;"
src="../../../assets/images/excel.png" alt=""> 导出Excel</button>
</div>
@ -438,6 +712,6 @@
</div>
</div>
<div class="backbtn" *ngIf="userdata && !userdata.hideCloseBtn">
<button nz-button (click)="goback()">返回</button>
<button class="buleBtn" nz-button (click)="goback()">返回</button>
</div>
</div>

101
src/app/pages/oil-station-info/oil-station-info.component.scss

@ -12,7 +12,7 @@
}
.content {
width: 1000px;
width: 1050px;
height: 100%;
display: flex;
flex-direction: column;
@ -28,9 +28,6 @@
.tablebox {
flex: 1;
.table {
position: relative;
@ -48,7 +45,7 @@
tr {
td {
height: 40px;
min-height: 40px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
@ -62,6 +59,11 @@
text-align: left;
border: 0px;
}
textarea{
background: none;
color: #fff;
border: 0;
}
}
@ -123,6 +125,47 @@
}
.itemname {
width: 120px;
text-align: right;
box-sizing: border-box;
padding-right: 12px;
}
.deleteTr {
position: absolute;
right: 5px;
top: 5px;
cursor: pointer;
}
}
}
.shade {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
background-color: rgba(77, 80, 83, 0.3);
display: flex;
justify-content: center;
align-items: center;
font-size: 25px;
font-family: titlefont;
color: white;
z-index: 999;
}
}
.otherInfo {
.otherInfoItem {
table {
position: relative;
.uploadDivbox {
width: 100%;
height: 80px;
@ -161,40 +204,31 @@
}
}
}
.itemname {
width: 120px;
text-align: right;
box-sizing: border-box;
padding-right: 12px;
}
.deleteTr {
.deleteTable {
position: absolute;
right: 5px;
top: 5px;
right: 2px;
top: 2px;
z-index: 100;
i {
color: #fff;
font-size: 18px;
cursor: pointer;
}
}
}
}
.shade {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
background-color: rgba(77, 80, 83, 0.3);
display: flex;
justify-content: center;
align-items: center;
font-size: 25px;
font-family: titlefont;
color: white;
.moduleName {
span {
color: #23D9FF;
margin-right: 6px;
}
margin-bottom: 12px;
}
}
.btnbox {
height: 36px;
@ -224,7 +258,9 @@
right: 66px;
top: 22px;
button {
}
.buleBtn {
width: 64px;
height: 32px;
background: rgba(0, 129, 255, 0.3);
@ -232,4 +268,3 @@
border-radius: 0px;
color: #91CCFF;
}
}

121
src/app/pages/oil-station-info/oil-station-info.component.ts

@ -28,7 +28,7 @@ export class OilStationInfoComponent implements OnInit {
laneNumber: [null],
address: [null],
locationName: [null],
companyName: [null],
companyName: [null, [Validators.required]],
leaderName: [null],
leaderContact: [null],
stationLevel: [null],
@ -88,6 +88,9 @@ export class OilStationInfoComponent implements OnInit {
this.fireBrigade = data.result.govUnitDetail.fireBrigade
}
if (this.httpBody.otherData) {
this.otherInfoData = JSON.parse(this.httpBody.otherData)
}
console.log('油站信息', this.httpBody)
}, err => {
@ -160,19 +163,119 @@ export class OilStationInfoComponent implements OnInit {
hospital: {},
fireBrigade: {}
},
hasBuildingInfo: true,
businessLicenseImage: '',
dangerousChemicalLicenseImage: '',
gasSellLicenseImage: '',
licenses: [
],
otherData: null
}
otherInfoData = {
oilingMachine: [
{ name: '', brand: '', oilGunNum: '', oilsArticleNum: '', oilGunSerialNum: '' }
],
tankEquipment: [
{ name: '', oilsArticleNum: '', oilGunSerialNum: '', oilOmeterVolume: '', safetyVolume: '', oilOmeterType: 0, oilPumpType: 0 }
],
oilDeliveryPipe: [
{ name: '', connectTanker: '', connectOilTank: '', designPaper: '' }
],
oilVaporRecovery: [
{ name: '油气回收管线', onceSystemType: '将卸油时产生的油气进行回收', twiceSystemType: 1, twicePumpType: 'mini9000', thriceProcessingUnit: '冷凝+吸附', monitoringDevice: '监测气液比、密闭性,出现异常可及时预警', designPaper: '' }
],
valve: [
{ name: 'P/V阀(机械呼吸阀)', description: '阀内设计双向开启功能,阀门处于常闭状态,当油罐压力/真空达到阀门预设压力/真空值时,阀门自行打开进行排气/吸气,以维持油罐内压力与大气压保持平衡。' }
]
}
perpetualChange(item, $event) {
if ($event) {
item.endTime = '9999-01-01'
addTable(tableData, type) {
if (type == 'oilingMachine') {
tableData.push({ name: '', brand: '', oilGunNum: '', oilsArticleNum: '', oilGunSerialNum: '' })
}
if (type == 'tankEquipment') {
tableData.push({ name: '', oilsArticleNum: '', oilGunSerialNum: '', oilOmeterVolume: '', safetyVolume: '', oilOmeterType: 0, oilPumpType: 0 })
}
if (type == 'oilDeliveryPipe') {
tableData.push({ name: '', connectTanker: '', connectOilTank: '', designPaper: '' })
}
}
deleteTable(tableData, key) {
tableData.splice(key, 1)
}
uploadType: string
isUploadLoading = false
filechange(e, type, item) {
this.isUploadLoading = true
let file = e.target.files[0] || null //获取上传的文件
this.uploadType = type
this.openFileSelect(file, `stationPhotos/${this.userdata.organization.id}/`, item)
}
//设置文件路径并上传
postFilePath
async openFileSelect(file: File, extensionPath: string, item) {
this.postFilePath = extensionPath;
let fileSize = file.size || null //上传文件的总大小
let shardSize = 5 * 1024 * 1024 //5MB 超过5MB要分块上传
if (fileSize >= shardSize) // 超过5MB要分块上传
{
await this.postFileByMul(file, item);
}
else //普通上传
{
await this.postFile(file, item);
}
}
//上传文件
async postFile(file: File, item) {
await new Promise((resolve, reject) => {
this.objectsSrv.postFile(this.postFilePath, file).subscribe(data => {
let dataObj = data as any;
let filePath: string = ObjectsSimpleService.baseUrl + dataObj.objectName;
item.designPaper = filePath
this.isUploadLoading = false
resolve('success')
});
})
}
/**
*
* @param file
*/
postFileByMul(file: File, item) {
this.objectsSrv.postFile_MultipartUpload(this.postFilePath, file).then((value) => {
let dataObj = value as any;
item.designPaper = dataObj.filePath
this.isUploadLoading = false
});
}
//查看图片
viewImg(url) {
let dom = document.getElementById(`viewerjs`)
let pObjs = dom.childNodes;
let node = document.createElement("img")
node.style.display = "none";
node.src = url;
node.id = 'img'
dom.appendChild(node)
setTimeout(() => {
let viewer = new Viewer(document.getElementById(`viewerjs`), {
hidden: () => {
dom.removeChild(pObjs[0]);
viewer.destroy();
}
});
node.click();
}, 0);
}
goback() {
this.router.navigate(['/todaywarning/petrolStation'])
}
@ -189,8 +292,11 @@ export class OilStationInfoComponent implements OnInit {
let body = JSON.parse(JSON.stringify(this.httpBody))
body.stationType
body.govUnitDetail = JSON.stringify(this.httpBody.govUnitDetail)
console.log(body)
if (!body.hasBuildingInfo) {
body.otherData = JSON.stringify(this.otherInfoData)
}
// console.log(body)
body.licenses.forEach(item => {
delete item.isPerpetual
})
@ -201,6 +307,7 @@ export class OilStationInfoComponent implements OnInit {
this.isLoadingSave = false
this.message.create('success', '保存成功!');
}, err => {
reject(err)
this.isLoadingSave = false
this.message.create('error', '保存失败!');
})
@ -209,7 +316,6 @@ export class OilStationInfoComponent implements OnInit {
this.message.create('warning', '请填写完整!');
return false
}
}
@ -218,6 +324,7 @@ export class OilStationInfoComponent implements OnInit {
await this.submitForm()
if (this.validateForm.valid) {
let params = {
id: this.httpBody.id
}
@ -231,6 +338,8 @@ export class OilStationInfoComponent implements OnInit {
})
}
}
isRevocationAuditLoading: boolean = false
revocationAudit() {
let params = {

3
src/app/pages/plan-admin/oil-station-list/oil-station-list.component.ts

@ -104,7 +104,8 @@ export class OilStationListComponent implements OnInit {
'top': '50px',
},
nzComponentParams: {
data: { organizationId: (JSON.parse(sessionStorage.getItem('userdataOfgasstation'))).organization.id }
data: { organizationId: (JSON.parse(sessionStorage.getItem('userdataOfgasstation'))).organization.id },
url: '/api/services/app/GasStation/GetAuditted'
},
nzFooter: null,
nzClosable: false,

2
src/theme.less

@ -11,7 +11,7 @@
}
.yellowColor {
color: #FFBD4B;
color: #FFBD4B!important;
}
.greenColor {

Loading…
Cancel
Save