565 lines
14 KiB
JavaScript
565 lines
14 KiB
JavaScript
// pages/newAddPage/safetyManagement/index.js
|
|
|
|
const app = getApp()
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
active: 1,
|
|
loginName: "",
|
|
deptId: "",
|
|
projectName: '',
|
|
projectId: '',
|
|
//教育培训
|
|
videoSurvey: [{
|
|
name: '应急演练',
|
|
value: 0,
|
|
prop: 0
|
|
},
|
|
{
|
|
name: '专项培训',
|
|
value: 0,
|
|
prop: 0
|
|
}
|
|
],
|
|
trainList: [],
|
|
trainTotal: 0,
|
|
emergencyDrillList: [],
|
|
emergencyDrillTotal: 0,
|
|
//特种作业人员
|
|
specialStatistics: [{
|
|
name: '其它',
|
|
value: 0,
|
|
prop: 0
|
|
}],
|
|
insuranceStatistics: [{
|
|
name: '安责险',
|
|
value: 0,
|
|
prop: 0
|
|
}, {
|
|
name: '一切险',
|
|
value: 0,
|
|
prop: 0
|
|
}],
|
|
deptWorksStatistics: [{
|
|
name: '劳务人员',
|
|
value: 0,
|
|
prop: 0
|
|
}, {
|
|
name: '监理人员',
|
|
value: 0,
|
|
prop: 0
|
|
}, {
|
|
name: '总包人员',
|
|
value: 0,
|
|
prop: 0
|
|
}],
|
|
securityCheck: {
|
|
routineRectificationRate: 0, //常规整改率
|
|
routineProblemTotal: 0, //常规问题总数
|
|
routineCheckNumber: 0, //常规检查次数
|
|
specialRectificationRate: 0, //专项整改率
|
|
specialProblemTotal: 0, //专项问题总数
|
|
specialCheckNumber: 0, //专项检查次数
|
|
},
|
|
menuList: [],
|
|
request: app.globalData.reqUrl,
|
|
todoDb: 0,
|
|
approveDb: 0,
|
|
aq: 0,
|
|
},
|
|
|
|
//项目切换 返回值
|
|
onProjectSelect(e) {
|
|
this.onClickShow();
|
|
let projectId = e.detail.id;
|
|
let projectName = e.detail.text;
|
|
app.globalData.projectId = projectId;
|
|
app.globalData.projectName = projectName;
|
|
this.setData({
|
|
projectId: projectId,
|
|
projectName: projectName,
|
|
})
|
|
this.onLoad()
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad(options) {
|
|
var that = this
|
|
wx.getStorage({
|
|
key: 'userinfo',
|
|
success: function (res) {
|
|
console.log(res.data);
|
|
that.setData({
|
|
loginName: res.data.loginName,
|
|
deptId: res.data.deptId,
|
|
projectName: app.globalData.projectName,
|
|
projectId: app.globalData.projectId,
|
|
initData: {
|
|
text: app.globalData.projectName,
|
|
id: app.globalData.projectId
|
|
}
|
|
})
|
|
that.selectMenuList(res.data.loginName);
|
|
that.initPage(app.globalData.projectId);
|
|
that.awaitTask(res.data.minRoleId, res.data.deptId, res.data.loginName, res.data.userId);
|
|
}
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 初始化项目安全管理
|
|
*/
|
|
initPage(projectId) {
|
|
this.getTrainList(projectId, 0);
|
|
this.getSecurityCheck(projectId);
|
|
this.getSpecial(projectId);
|
|
this.getDeptWorks(projectId);
|
|
this.getPojectInsurance(projectId);
|
|
//this.getTraining(projectId);
|
|
this.getTrainList(projectId, 1);
|
|
},
|
|
|
|
selectMenuList: function (loginName) {
|
|
var that = this;
|
|
wx.request({
|
|
url: app.globalData.reqUrl + '/wechat/selectRoleMenuList',
|
|
data: {
|
|
username: loginName,
|
|
type: "aq"
|
|
},
|
|
method: "get",
|
|
success: function (res) {
|
|
res = res.data;
|
|
if (res.code == '200') {
|
|
that.setData({
|
|
menuList: res.data
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 教育培训
|
|
*/
|
|
getTraining(projectId) {
|
|
wx.request({
|
|
url: app.globalData.reqUrl + '/wechat/projectTrain/selectGroupCountByProjectId',
|
|
data: {
|
|
projectId: projectId
|
|
},
|
|
method: "get",
|
|
success: res => {
|
|
res = res.data;
|
|
if (res.code == 200) {
|
|
let sum = 0;
|
|
res.data.forEach((it, idx) => {
|
|
sum += it.total;
|
|
});
|
|
let videoSurvey = [];
|
|
res.data.forEach((it, idx) => {
|
|
videoSurvey.push({
|
|
name: it.typeName,
|
|
value: it.total,
|
|
prop: (it.total / sum * 100).toFixed(2)
|
|
});
|
|
});
|
|
//数据绑定
|
|
this.setData({
|
|
videoSurvey
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 特种人员
|
|
*/
|
|
getSpecial(projectId) {
|
|
wx.request({
|
|
url: app.globalData.reqUrl + '/wechat/projectSpecial/selectGroupCountByProjectId',
|
|
data: {
|
|
projectId: projectId
|
|
},
|
|
method: "get",
|
|
success: res => {
|
|
res = res.data;
|
|
if (res.code == 200 && res.data) {
|
|
let sum = 0;
|
|
let otherSum = 0;
|
|
let flag = true;
|
|
res.data.forEach((it, idx) => {
|
|
sum += it.total;
|
|
if (idx > 4 && res.data.length > 6) {
|
|
otherSum += it.total;
|
|
}
|
|
});
|
|
let specialStatistics = [];
|
|
res.data.forEach((it, idx) => {
|
|
if (flag) {
|
|
specialStatistics.push({
|
|
name: it.typeName,
|
|
value: it.total,
|
|
prop: (it.total / sum * 100).toFixed(2)
|
|
});
|
|
if (idx > 3 && res.data.length > 6) {
|
|
specialStatistics.push({
|
|
name: "其它工种",
|
|
value: otherSum,
|
|
prop: (otherSum / sum * 100).toFixed(2)
|
|
});
|
|
flag = false;
|
|
}
|
|
}
|
|
});
|
|
//数据绑定
|
|
this.setData({
|
|
specialStatistics
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 专项培训&&应急演练
|
|
*/
|
|
getTrainList(projectId, type) {
|
|
let that = this;
|
|
wx.request({
|
|
url: app.globalData.reqUrl + '/wechat/projectTrain/list',
|
|
data: {
|
|
projectId: projectId,
|
|
trainType: type,
|
|
deptId: 0
|
|
},
|
|
method: "get",
|
|
success: res => {
|
|
res = res.data;
|
|
if (res.code == 200) {
|
|
if (type == "1") {
|
|
//数据绑定
|
|
this.setData({
|
|
emergencyDrillList: res.data,
|
|
emergencyDrillTotal: res.data.length
|
|
})
|
|
} else {
|
|
//数据绑定
|
|
this.setData({
|
|
trainList: res.data,
|
|
trainTotal: res.data.length
|
|
})
|
|
}
|
|
}
|
|
}
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 项目人员
|
|
*/
|
|
getDeptWorks(projectId) {
|
|
wx.request({
|
|
url: app.globalData.reqUrl + '/wechat/projectDeptWroks/findSumByProjectId',
|
|
data: {
|
|
projectId: projectId
|
|
},
|
|
method: "get",
|
|
success: res => {
|
|
res = res.data;
|
|
if (res.code == 200) {
|
|
if (res.data) {
|
|
let sum = 0;
|
|
let deptWorksStatistics = [];
|
|
if (res.data.contractorPersonnel) {
|
|
sum += res.data.contractorPersonnel;
|
|
}
|
|
if (res.data.servicePersonnel) {
|
|
sum += res.data.servicePersonnel;
|
|
}
|
|
if (res.data.supervisorPersonnel) {
|
|
sum += res.data.supervisorPersonnel;
|
|
}
|
|
if (res.data.servicePersonnel) {
|
|
deptWorksStatistics.push({
|
|
name: "劳务人员",
|
|
value: res.data.servicePersonnel,
|
|
prop: (res.data.servicePersonnel / sum * 100).toFixed(2)
|
|
});
|
|
} else {
|
|
deptWorksStatistics.push({
|
|
name: "劳务人员",
|
|
value: 0,
|
|
prop: (0 / sum * 100).toFixed(2)
|
|
});
|
|
}
|
|
if (res.data.supervisorPersonnel) {
|
|
deptWorksStatistics.push({
|
|
name: "监理人员",
|
|
value: res.data.supervisorPersonnel,
|
|
prop: (res.data.supervisorPersonnel / sum * 100).toFixed(2)
|
|
});
|
|
} else {
|
|
deptWorksStatistics.push({
|
|
name: "监理人员",
|
|
value: 0,
|
|
prop: (0 / sum * 100).toFixed(2)
|
|
});
|
|
}
|
|
if (res.data.contractorPersonnel) {
|
|
deptWorksStatistics.push({
|
|
name: "总包人员",
|
|
value: res.data.contractorPersonnel,
|
|
prop: (res.data.contractorPersonnel / sum * 100).toFixed(2)
|
|
});
|
|
} else {
|
|
deptWorksStatistics.push({
|
|
name: "总包人员",
|
|
value: 0,
|
|
prop: (0 / sum * 100).toFixed(2)
|
|
});
|
|
}
|
|
//数据绑定
|
|
this.setData({
|
|
deptWorksStatistics
|
|
})
|
|
}
|
|
}
|
|
}
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 获取项目保险数据
|
|
*/
|
|
getPojectInsurance(projectId) {
|
|
wx.request({
|
|
url: app.globalData.reqUrl + '/wechat/projectInsurance/selectGroupCountByProjectId',
|
|
data: {
|
|
projectId: projectId
|
|
},
|
|
method: "get",
|
|
success: res => {
|
|
res = res.data;
|
|
if (res.code == 200 && res.data) {
|
|
let sum = 0;
|
|
res.data.forEach((it, idx) => {
|
|
sum += it.total;
|
|
});
|
|
let insuranceStatistics = [];
|
|
if (res.data.length == 2) {
|
|
res.data.forEach((it, idx) => {
|
|
insuranceStatistics.push({
|
|
name: it.insuranceTypeName,
|
|
value: it.total,
|
|
prop: (it.total / sum * 100).toFixed(2)
|
|
});
|
|
});
|
|
} else {
|
|
res.data.forEach((it, idx) => {
|
|
if (it.insuranceType == "1") {
|
|
insuranceStatistics.push({
|
|
name: it.insuranceTypeName,
|
|
value: it.total,
|
|
prop: (it.total / sum * 100).toFixed(2)
|
|
});
|
|
insuranceStatistics.push({
|
|
name: "安责险",
|
|
value: 0,
|
|
prop: 0
|
|
});
|
|
} else {
|
|
insuranceStatistics.push({
|
|
name: it.insuranceTypeName,
|
|
value: it.total,
|
|
prop: (it.total / sum * 100).toFixed(2)
|
|
});
|
|
insuranceStatistics.push({
|
|
name: "一切险",
|
|
value: 0,
|
|
prop: 0
|
|
});
|
|
}
|
|
});
|
|
}
|
|
//数据绑定
|
|
this.setData({
|
|
insuranceStatistics
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 获取安全检查数据
|
|
*/
|
|
getSecurityCheck(projectId) {
|
|
wx.request({
|
|
url: app.globalData.reqUrl + '/wechat/projectProblemmodify/selectGroupCountByProjectId',
|
|
data: {
|
|
projectId: projectId,
|
|
infoType: "0"
|
|
},
|
|
method: "get",
|
|
success: res => {
|
|
res = res.data;
|
|
if (res.code == 200) {
|
|
//数据绑定
|
|
res.data.forEach((it, idx) => {
|
|
if (it.problemType == "1") {
|
|
this.setData({
|
|
"securityCheck.routineRectificationRate": (it.comTotal / it.total * 100).toFixed(2),
|
|
"securityCheck.routineProblemTotal": it.comTotal,
|
|
"securityCheck.routineCheckNumber": it.total
|
|
})
|
|
} else {
|
|
this.setData({
|
|
"securityCheck.specialRectificationRate": (it.comTotal / it.total * 100).toFixed(2),
|
|
"securityCheck.specialProblemTotal": it.comTotal,
|
|
"securityCheck.specialCheckNumber": it.total,
|
|
})
|
|
}
|
|
});
|
|
}
|
|
}
|
|
})
|
|
},
|
|
|
|
goZXPX() {
|
|
wx.setStorageSync('nav-menu', "aq");
|
|
wx.navigateTo({
|
|
url: '../../pageage/project_train/list/index?trainType=0',
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 安全隐患页面
|
|
*/
|
|
goAQYH() {
|
|
wx.setStorageSync('nav-menu', "aq");
|
|
wx.redirectTo({
|
|
url: '../../pageage/project_problemmodify/security/list/index',
|
|
})
|
|
},
|
|
|
|
goTZRY() {
|
|
wx.setStorageSync('nav-menu', "aq");
|
|
wx.redirectTo({
|
|
url: '../../pageage/project_special/list/index',
|
|
})
|
|
},
|
|
|
|
goXMBX() {
|
|
wx.setStorageSync('nav-menu', "aq");
|
|
wx.redirectTo({
|
|
url: '../../pageage/project_insurance/list/index',
|
|
})
|
|
},
|
|
|
|
goZGRY() {
|
|
wx.setStorageSync('nav-menu', "aq");
|
|
wx.redirectTo({
|
|
url: '../../pageage/project_deptWorks/list/index',
|
|
})
|
|
},
|
|
|
|
goYJYL() {
|
|
wx.setStorageSync('nav-menu', "aq");
|
|
wx.navigateTo({
|
|
url: '../../pageage/project_train/list/index?trainType=1',
|
|
})
|
|
},
|
|
|
|
/****************************底部导航********************************/
|
|
|
|
onClickShow() {
|
|
this.setData({
|
|
loadShow: true
|
|
});
|
|
},
|
|
onClickHide() {
|
|
this.setData({
|
|
loadShow: false
|
|
});
|
|
},
|
|
|
|
// 底部导航
|
|
onChange(event) {
|
|
// event.detail 的值为当前选中项的索引
|
|
this.setData({
|
|
active: event.detail
|
|
});
|
|
},
|
|
|
|
goMenu: function (event) {
|
|
wx.setStorageSync('nav-menu', "aq");
|
|
wx.redirectTo({
|
|
url: event.currentTarget.dataset.url
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 项目概况页面
|
|
*/
|
|
XMGK: function () {
|
|
wx.redirectTo({
|
|
url: '../xiangmugaikuang/index'
|
|
})
|
|
},
|
|
//跳转到质量管理
|
|
ZLGL: function () {
|
|
wx.redirectTo({
|
|
url: '../quality_manage/index'
|
|
})
|
|
},
|
|
//跳转到进度管理
|
|
JDGL: function () {
|
|
//app.toast("敬请期待!");
|
|
wx.redirectTo({
|
|
url: '../../pageage/project_schedule/list/index'
|
|
})
|
|
},
|
|
/**
|
|
* 更多功能
|
|
*/
|
|
GDGN: function () {
|
|
wx.redirectTo({
|
|
url: '../gengduogongneng/index'
|
|
})
|
|
},
|
|
|
|
//查询当前登录人的代办任务
|
|
awaitTask(minRoleId, deptId, loginName, userId) {
|
|
let param = {
|
|
"businessKey": app.globalData.projectId,
|
|
"nowRole": minRoleId,
|
|
"nowDept": deptId,
|
|
"nowUserName": loginName,
|
|
"nowUser": userId,
|
|
"activeName": "await"
|
|
}
|
|
var that = this;
|
|
wx.request({
|
|
url: app.globalData.reqUrl + '/wechat/flowTask/myAwaitFlowTaskListCount',
|
|
data: param,
|
|
method: "post",
|
|
success: function (res) {
|
|
res = res.data;
|
|
if (res.code == "200") {
|
|
that.setData({
|
|
todoDb: res.data.todo+res.data.approveLZYJ,
|
|
approveDb: res.data.approve + res.data.zlCount,
|
|
aq: res.data.aqCount
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
}) |