Browse Source

[完善]周计划页面消息实时更新

非煤矿山灾害智能感知和预警系统
邵佳豪 2 years ago
parent
commit
9f00a94900
  1. 175
      src/app/home/nav/dist/nav.component.js
  2. 25
      src/app/home/nav/nav.component.ts
  3. 104
      src/app/home/task/station-weekly-plan/dist/station-weekly-plan.component.js
  4. 4
      src/app/home/task/station-weekly-plan/station-weekly-plan.component.html
  5. 106
      src/app/home/task/station-weekly-plan/station-weekly-plan.component.ts

175
src/app/home/nav/dist/nav.component.js vendored

@ -0,0 +1,175 @@
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
exports.__esModule = true;
exports.NavComponent = void 0;
var core_1 = require("@angular/core");
var change_password_component_1 = require("../change-password/change-password.component");
var signalR_1 = require("../../../signalR");
var NavComponent = /** @class */ (function () {
function NavComponent(modal, http, message, viewContainerRef, router, token, notification, methodService, newTaskMessage) {
this.modal = modal;
this.http = http;
this.message = message;
this.viewContainerRef = viewContainerRef;
this.router = router;
this.token = token;
this.notification = notification;
this.methodService = methodService;
this.newTaskMessage = newTaskMessage;
this.user = null;
this.isZhidui = false;
this.visible = false;
}
NavComponent.prototype.ngOnInit = function () {
var _this = this;
//调用服务中的function刷新token
this.token.startUp();
this.user = JSON.parse(sessionStorage.getItem('userData')).name;
var roles = JSON.parse(sessionStorage.getItem('userData')).roles;
var isTrue = roles.find(function (item) {
return item.name == '超级管理员';
});
isTrue ? this.isSuperAdmin = true : this.isSuperAdmin = false;
var organizationLevel = JSON.parse(sessionStorage.getItem('userData')).organizationLevel;
organizationLevel == 'brigade' ? this.isZhidui = true : this.isZhidui = false;
this.methodService.getNotifications();
signalR_1["default"].initSR();
// 接收来自中心的消息
signalR_1["default"].SR.on('receiveNotification', function (message, senderName) {
//1.右下角弹窗(新增任务提示)
console.log('收到消息---', message);
_this.methodService.notificationsList.unshift(message);
_this.createBasicNotification(message);
//2.右上角消息栏目(全部消息)
//3.生成周计划新增徽章(新增任务提示)
if (_this.router.url.indexOf('weeklyplan') != -1) {
if (message.content == '您参与的任务已取消,请点击查看详情。') {
var data = { signalRData: '' };
data.signalRData = message;
_this.newTaskMessage.sendMessage(data); //发布一条消息
}
else {
_this.methodService.getTaskDetails(message.planTaskId).then(function (data) {
data.signalRData = message;
_this.newTaskMessage.sendMessage(data); //发布一条消息
});
}
}
});
};
NavComponent.prototype.createBasicNotification = function (message) {
this.notification.blank('任务消息', message.content, { nzPlacement: 'bottomRight' });
};
NavComponent.prototype.signOut = function () {
this.router.navigate(['/login']);
};
NavComponent.prototype.ngOnDestroy = function () {
signalR_1["default"].SR.receiveNotification = [];
signalR_1["default"].stopSR();
};
NavComponent.prototype.changePassword = function () {
var _this = this;
var modal = this.modal.create({
nzTitle: '修改密码',
nzContent: change_password_component_1.ChangePasswordComponent,
nzViewContainerRef: this.viewContainerRef,
nzWidth: 288,
nzComponentParams: {},
nzOnOk: function () { return __awaiter(_this, void 0, void 0, function () {
var _this = this;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!instance.validateForm.valid) return [3 /*break*/, 4];
if (!(instance.validateForm.value.newpassword != instance.validateForm.value.affirmpassword)) return [3 /*break*/, 1];
this.message.create('warning', '两次密码输入不一致!');
return [2 /*return*/, false];
case 1: return [4 /*yield*/, new Promise(function (resolve, reject) {
var body = {
oldPassword: instance.validateForm.value.oldpassword,
newPassword: instance.validateForm.value.newpassword
};
_this.http.patch('/api/Accounts/ChangePassword', body).subscribe(function (data) {
resolve(data);
_this.message.create('success', '修改成功!');
return true;
}, function (err) {
_this.message.create('warning', err.error.error.message);
modal.config.nzOkLoading = false;
return false;
});
})];
case 2:
_a.sent();
_a.label = 3;
case 3: return [3 /*break*/, 5];
case 4:
this.message.create('warning', '请填写完整!');
return [2 /*return*/, false];
case 5: return [2 /*return*/];
}
});
}); }
});
var instance = modal.getContentComponent();
modal.afterOpen.subscribe(function () { return console.log('[afterOpen] emitted!'); });
// Return a result when closed
modal.afterClose.subscribe(function (result) { return console.log('[afterClose] The result is:', result); });
};
NavComponent.prototype.clickMe = function () {
this.visible = !this.visible;
};
NavComponent.prototype.change = function (value) {
console.log(value);
};
NavComponent = __decorate([
core_1.Component({
selector: 'app-nav',
templateUrl: './nav.component.html',
styleUrls: ['./nav.component.scss']
})
], NavComponent);
return NavComponent;
}());
exports.NavComponent = NavComponent;

25
src/app/home/nav/nav.component.ts

@ -48,19 +48,18 @@ export class NavComponent implements OnInit {
//3.生成周计划新增徽章(新增任务提示)
// if (this.router.url.indexOf('weeklyplan') != -1) {
// if (message.content == '您参与的任务已取消,请点击查看详情。') {
// let data = { signalRData: '' }
// data.signalRData = message
// this.newTaskMessage.sendMessage(data);//发布一条消息
// } else {
// this.methodService.getTaskDetails(message.planTaskId).then((data: any) => {
// data.signalRData = message
// this.newTaskMessage.sendMessage(data);//发布一条消息
// })
// }
// }
if (this.router.url.indexOf('weeklyplan') != -1) {
if (message.content == '您参与的任务已取消,请点击查看详情。') {
let data = { signalRData: '' }
data.signalRData = message
this.newTaskMessage.sendMessage(data);//发布一条消息
} else {
this.methodService.getTaskDetails(message.planTaskId).then((data: any) => {
data.signalRData = message
this.newTaskMessage.sendMessage(data);//发布一条消息
})
}
}
})

104
src/app/home/task/station-weekly-plan/dist/station-weekly-plan.component.js vendored

@ -206,16 +206,15 @@ var StationWeeklyPlanComponent = /** @class */ (function () {
var isShow = true;
if (element.creationType == '申领任务') {
if (this.isSupervisor) { //检查员
if ((element.taskType == '熟悉演练' && element.relatedTaskId != null) ||
if ((element.taskType == '熟悉演练') ||
(element.taskType == '联络指导' && element.approvalStatus == '待处理' && element.relatedTaskId == null)) {
isShow = false;
}
}
else { //消防站
if ((element.taskType == '联络指导' && element.relatedTaskId != null) ||
if ((element.taskType == '联络指导') ||
(element.taskType == '熟悉演练' && element.approvalStatus == '待处理' && element.relatedTaskId == null) ||
(element.taskType == '联络指导' && element.relatedTaskId == null ||
(element.taskType == '双随机' && element.relatedTaskId == null))) {
(element.taskType == '双随机' && element.relatedTaskId == null)) {
isShow = false;
}
}
@ -448,6 +447,7 @@ var StationWeeklyPlanComponent = /** @class */ (function () {
if (data.signalRData.content == '您有一条新的一体化任务,请注意查收。') {
_this.cardData.forEach(function (item) {
if (item.name == data.taskType) {
console.log('要push的数组', item.data);
item.data.unshift(data);
if (!item.isDetails) {
item.badgeNum += 1;
@ -460,19 +460,30 @@ var StationWeeklyPlanComponent = /** @class */ (function () {
});
}
if (data.signalRData.content == '您参与的任务已取消,请点击查看详情。') {
_this.cardData.forEach(function (item) {
if (item.name == data.taskType) {
for (var index = 0; index < item.data.length; index++) {
var element = item.data[index];
if (element.id == data.signalRData.planTaskId) {
item.data.splice(index, 1);
index--;
// this.cardData.forEach((item: any) => {
// if (item.name == data.taskType) {
// for (let index = 0; index < item.data.length; index++) {
// const element = item.data[index];
// if (element.id == data.signalRData.planTaskId) {
// item.data.splice(index, 1)
// index--
// }
// }
// if (!item.isDetails) {
// item.badgeNum -= 1
// }
// this.getTaskListPass(this.stationData[0])
// }
// })
}
if (data.signalRData.content == '您参与的任务时间变更,请点击查看详情。') {
_this.stationData[0].data.forEach(function (element) {
if (element.name == data.taskType) {
element.data.forEach(function (item) {
if (item.id == data.id) {
item.planTime = data.planTime;
}
}
if (!item.isDetails) {
item.badgeNum -= 1;
}
_this.getTaskListPass(_this.stationData[0]);
});
}
});
}
@ -515,67 +526,6 @@ var StationWeeklyPlanComponent = /** @class */ (function () {
StationWeeklyPlanComponent.prototype.expandcarditem = function (item) {
item.isExpand = !item.isExpand;
};
//获得消防站下的所有任务
StationWeeklyPlanComponent.prototype.getTaskListOfStation = function (item) {
var _this = this;
var selectedTime = this.selectedYear + '-' + this.selectedMonth + '-' + '01';
var params = {
Month: selectedTime,
CompanyOrganizationId: item.id,
PageNumber: this.PageNumber,
approvalStatuses: ['通过', '待检查', '已检查'],
PageSize: this.PageSize
};
item.isLoading = true;
this.http.get('/api/PlanTasks', {
params: params
}).subscribe({
next: function (data) {
item.isLoading = false;
var listData = [
{ name: '双随机', background: '#1D9DFF', icon: 'suiji.png', scale: '0/0', data: [], inspected: 0, finished: 0 },
{ name: '行政许可', background: '#42B983', icon: 'xuke.png', scale: '0/0', data: [], inspected: 0, finished: 0 },
{ name: '熟悉演练', background: '#9D80FF', icon: 'yanlian.png', scale: '0/0', data: [], inspected: 0, finished: 0 },
{ name: '联络指导', background: '#5483EA', icon: 'zhidao.png', scale: '0/0', data: [], inspected: 0, finished: 0 },
{ name: '消防宣传', background: '#FF5D2A', icon: 'xuanchuan.png', scale: '0/0', data: [], inspected: 0, finished: 0 },
{ name: '投诉举报', background: '#5087FF', icon: 'tousu.png', scale: '0/0', data: [], inspected: 0, finished: 0 },
{ name: '火灾调查', background: '#FF404D', icon: 'huozai.png', scale: '0/0', data: [], inspected: 0, finished: 0 }
];
data.items.forEach(function (element) {
listData.forEach(function (item, key) {
element.taskType == item.name ? listData[key].data.push(element) : null;
});
});
for (var index = 0; index < listData.length; index++) {
var element = listData[index];
if (element.data.length == 0) {
listData.splice(index, 1);
index--;
}
}
item.data = listData;
console.log('当前登录用户所有通过的任务', item);
item.allUnitsNum = 0;
item.awaitInspect = 0;
item.inspected = 0;
item.finished = 0;
item.data.forEach(function (element) {
item.allUnitsNum += element.data.length;
element.data.forEach(function (i) {
i.approvalStatus == '待检查' ? item.awaitInspect += 1 : null;
i.approvalStatus == '已检查' ? item.inspected += 1 : null;
i.approvalStatus == '待检查' ? element.inspected += 1 : null;
i.approvalStatus == '已检查' ? element.finished += 1 : null;
});
});
item.percentage = Math.round(item.inspected / item.allUnitsNum) * 100;
},
error: function (err) {
_this.message.create('warning', '获取数据失败');
item.isLoading = false;
}
});
};
StationWeeklyPlanComponent.prototype.taskDetails = function (item) {
var _this = this;
// console.log(item)

4
src/app/home/task/station-weekly-plan/station-weekly-plan.component.html

@ -100,10 +100,10 @@
<span class="itemtwocontentitemp1name">{{i.company.companyName}}</span>
<span class="marginr5">
<span class="green"
*ngIf="isExpand && i.approvalStatus!='已检查' && !i.relatedTaskId"
*ngIf="isExpand && i.approvalStatus!='已检查' && i.relatedTaskId"
(click)="accept(i,item)">接受</span>
<span class="red"
*ngIf="isExpand && i.approvalStatus!='已检查' && !i.relatedTaskId"
*ngIf="isExpand && i.approvalStatus!='已检查' && i.relatedTaskId"
(click)="reject(i,item)">拒绝</span>
<span *ngIf="isExpand">({{i.approvalStatus}})</span>
</span>

106
src/app/home/task/station-weekly-plan/station-weekly-plan.component.ts

@ -181,16 +181,15 @@ export class StationWeeklyPlanComponent implements OnInit {
let isShow = true
if (element.creationType == '申领任务') {
if (this.isSupervisor) {//检查员
if ((element.taskType == '熟悉演练' && element.relatedTaskId != null) ||
if ((element.taskType == '熟悉演练') ||
(element.taskType == '联络指导' && element.approvalStatus == '待处理' && element.relatedTaskId == null)
) {
isShow = false
}
} else {//消防站
if ((element.taskType == '联络指导' && element.relatedTaskId != null) ||
if ((element.taskType == '联络指导') ||
(element.taskType == '熟悉演练' && element.approvalStatus == '待处理' && element.relatedTaskId == null) ||
(element.taskType == '联络指导' && element.relatedTaskId == null ||
(element.taskType == '双随机' && element.relatedTaskId == null))) {
(element.taskType == '双随机' && element.relatedTaskId == null)) {
isShow = false
}
}
@ -437,6 +436,7 @@ export class StationWeeklyPlanComponent implements OnInit {
if (data.signalRData.content == '您有一条新的一体化任务,请注意查收。') {
this.cardData.forEach((item: any) => {
if (item.name == data.taskType) {
console.log('要push的数组', item.data)
item.data.unshift(data)
if (!item.isDetails) {
item.badgeNum += 1
@ -449,21 +449,32 @@ export class StationWeeklyPlanComponent implements OnInit {
})
}
if (data.signalRData.content == '您参与的任务已取消,请点击查看详情。') {
this.cardData.forEach((item: any) => {
if (item.name == data.taskType) {
for (let index = 0; index < item.data.length; index++) {
const element = item.data[index];
if (element.id == data.signalRData.planTaskId) {
item.data.splice(index, 1)
index--
// this.cardData.forEach((item: any) => {
// if (item.name == data.taskType) {
// for (let index = 0; index < item.data.length; index++) {
// const element = item.data[index];
// if (element.id == data.signalRData.planTaskId) {
// item.data.splice(index, 1)
// index--
// }
// }
// if (!item.isDetails) {
// item.badgeNum -= 1
// }
// this.getTaskListPass(this.stationData[0])
// }
// })
}
if (data.signalRData.content == '您参与的任务时间变更,请点击查看详情。') {
this.stationData[0].data.forEach(element => {
if (element.name == data.taskType) {
element.data.forEach(item => {
if (item.id == data.id) {
item.planTime = data.planTime
}
}
if (!item.isDetails) {
item.badgeNum -= 1
}
this.getTaskListPass(this.stationData[0])
});
}
})
});
}
});
@ -510,67 +521,6 @@ export class StationWeeklyPlanComponent implements OnInit {
item.isExpand = !item.isExpand
}
//获得消防站下的所有任务
getTaskListOfStation(item) {
let selectedTime = this.selectedYear + '-' + this.selectedMonth + '-' + '01'
let params = {
Month: selectedTime,
CompanyOrganizationId: item.id,
PageNumber: this.PageNumber,
approvalStatuses: ['通过', '待检查', '已检查'],
PageSize: this.PageSize
}
item.isLoading = true
this.http.get('/api/PlanTasks', {
params: params
}).subscribe({
next: (data: any) => {
item.isLoading = false
let listData = [
{ name: '双随机', background: '#1D9DFF', icon: 'suiji.png', scale: '0/0', data: [], inspected: 0, finished: 0 },
{ name: '行政许可', background: '#42B983', icon: 'xuke.png', scale: '0/0', data: [], inspected: 0, finished: 0 },
{ name: '熟悉演练', background: '#9D80FF', icon: 'yanlian.png', scale: '0/0', data: [], inspected: 0, finished: 0 },
{ name: '联络指导', background: '#5483EA', icon: 'zhidao.png', scale: '0/0', data: [], inspected: 0, finished: 0 },
{ name: '消防宣传', background: '#FF5D2A', icon: 'xuanchuan.png', scale: '0/0', data: [], inspected: 0, finished: 0 },
{ name: '投诉举报', background: '#5087FF', icon: 'tousu.png', scale: '0/0', data: [], inspected: 0, finished: 0 },
{ name: '火灾调查', background: '#FF404D', icon: 'huozai.png', scale: '0/0', data: [], inspected: 0, finished: 0 }
]
data.items.forEach(element => {
listData.forEach((item, key) => {
element.taskType == item.name ? listData[key].data.push(element) : null
});
});
for (let index = 0; index < listData.length; index++) {
const element = listData[index];
if (element.data.length == 0) {
listData.splice(index, 1)
index--
}
}
item.data = listData
console.log('当前登录用户所有通过的任务', item);
item.allUnitsNum = 0
item.awaitInspect = 0
item.inspected = 0
item.finished = 0
item.data.forEach(element => {
item.allUnitsNum += element.data.length
element.data.forEach(i => {
i.approvalStatus == '待检查' ? item.awaitInspect += 1 : null
i.approvalStatus == '已检查' ? item.inspected += 1 : null
i.approvalStatus == '待检查' ? element.inspected += 1 : null
i.approvalStatus == '已检查' ? element.finished += 1 : null
});
});
item.percentage = Math.round(item.inspected / item.allUnitsNum) * 100
},
error: (err) => {
this.message.create('warning', '获取数据失败');
item.isLoading = false
}
})
}
taskDetails(item) {
// console.log(item)

Loading…
Cancel
Save