var express = require('express'); var router = express.Router(); var mock = require('../../public/javascripts/mock') var Mock = require("mockjs") var multipart = require('connect-multiparty'); var multipartMiddleware = multipart(); var moment = require("moment") var util=require("../../public/javascripts/util") var route=require('../../public/javascripts/route') //获取HAZOP节点划分 router.get('/hdivide', function (req, res, next) { var data=mock.page(req,'获取HAOZP节点划分成功',{ //节点 node:()=>Mock.Random.word(), //节点编号 nodeId:/Node\d{3}/, //节点描述 nodeDesc:()=>Mock.Random.sentence(3, 5), //节点PID号 nodePid:/PID\d{3}/ }) res.json(data) }) router.get('/hdivide/all', function (req, res, next) { var data=Mock.mock({ ...mock.ok('获取所有HAOZP节点划分成功'), ...{ body:function (){ let obj={} Array.from(new Array(20).keys()).forEach(value => { obj[Mock.Random.integer(1,999)]=Mock.mock({ //节点 node:()=>Mock.Random.word(), //节点编号 nodeId:/Node\d{3}/, //节点描述 nodeDesc:()=>Mock.Random.sentence(3, 5), //节点PID号 nodePid:/PID\d{3}/ }) }) return obj } } }) res.json(data) }) router.patch('/hdivide/:nodeId', function (req, res, next) { var data=mock.ok(`节点${req.params.nodeId}更新成功`) res.json(data) }) route.addContextMenu(router,'hdivide','HAZOP节点划分') //获取节点复用 router.get('/hreuse', function (req, res, next) { var data=mock.page(req,'获取HAZOP节点复用成功',{ //节点 node:()=>Mock.Random.word(), //偏差 deviation:()=>Mock.Random.sentence(1, 3), //偏差描述 deviationDesc:()=>Mock.Random.sentence(3, 5) }) res.json(data) }) route.addContextMenu(router,'hreuse','HAZOP节点复用') //SIF节点划分 router.get('/sdivide/:nodeId', function (req, res, next) { var data=mock.page(req,`获取节点${req.params.nodeId}SIF节点划分成功`,{ //sif_id id:/\d{3}/, //SIF名称 name:()=>Mock.Random.name(), //SIF编号 sifId:/SIF\d{3}/, //SIF描述 desc:()=>Mock.Random.sentence(3, 5), //SIF连带动作 action:()=>Mock.Random.word(), //需求模式 demandModel:()=>`${Mock.Random.integer(1,3)}`, //SIL等级要求 level:()=>Mock.Random.integer(1,10), //触发机构 impactMmechanism:()=>Mock.Random.word(), //后果描述 consequence:()=>Mock.Random.sentence(3, 5), //安全状态 status:()=>Mock.Random.word(), //安全失效等级 loseEfficacy:()=>Mock.Random.integer(1,10), //PID号 pid:/PID\d{3}/, //备注 note:()=>Mock.Random.sentence(3, 5) }) res.json(data) }) router.get('/sdivide/:nodeId/all', function (req, res, next) { var data=Mock.mock({ ...mock.ok('获取所有HAOZP节点划分成功'), ...{ body:function (){ let obj={} Array.from(new Array(20).keys()).forEach(value => { obj[Mock.Random.integer(1,999)]=Mock.mock({ //sif_id id:/\d{3}/, //SIF名称 name:()=>Mock.Random.name(), //SIF编号 sifId:/SIF\d{3}/, //SIF描述 desc:()=>Mock.Random.sentence(3, 5), //SIF连带动作 action:()=>Mock.Random.word(), //需求模式 demandModel:()=>`${Mock.Random.integer(1,3)}`, //SIL等级要求 level:()=>Mock.Random.integer(1,10), //触发机构 impactMmechanism:()=>Mock.Random.word(), //后果描述 consequence:()=>Mock.Random.sentence(3, 5), //安全状态 status:()=>Mock.Random.word(), //安全失效等级 loseEfficacy:()=>Mock.Random.integer(1,10), //PID号 pid:/PID\d{3}/, //备注 note:()=>Mock.Random.sentence(3, 5) }) }) return obj } } }) res.json(data) }) router.patch('/sdivide/:nodeId/:id', function (req, res, next) { var data=mock.ok(`节点:${req.params.nodeId},SIF:${req.params.id}更新成功`) res.json(data) }) route.addContextMenu(router,'sdivide','SIF节点划分') router.get('/matrix', function (req, res, next) { var data=Mock.mock({ ...mock.ok('获取矩阵列表成功'), ...{ "body|1-10":[{ id:()=>Mock.Random.natural(1,1000), name:function (){ return `matrix${this.id}` }, "useProjectId|0-2":[/\d{3}/] }] } }) res.json(data) }) router.get('/matrix/:id', function (req, res, next) { var data=Mock.mock({ ...mock.ok('获取矩阵详情成功'), ...{ body:{ id:()=>Mock.Random.natural(1,1000), "useProjectId|0-2":[/\d{3}/], info:{ name:`matrix${Mock.Random.natural(5,8)}`, desc:`matrix${Mock.Random.natural(5,8)}`, x:()=>Mock.Random.natural(5,8), y:()=>Mock.Random.natural(5,8), explain:()=>Mock.Random.sentence(3, 5) }, severity:function (){ const severity=[] for(let i in Array.from(new Array(this.info.y).keys())){ severity.push({ //等级 level:Mock.Random.natural(1,9), //严重程度 severity:Mock.Random.natural(1,9), //人员 personnel:Mock.Random.word(), //财产 property:Mock.Random.word(), //环境 environment:Mock.Random.word(), //声誉 prestige:Mock.Random.word() }) } return severity }, possibility:function (){ const possibility=[] for(let i in Array.from(new Array(this.info.x).keys())){ possibility.push({ //等级 level:Mock.Random.natural(1,this.info.x), //概率值 probability:Mock.Random.natural(1,100)/100, //描述 desc:Mock.Random.sentence(3, 5) }) } return possibility }, 'level|3-5':[{ id:/\d{3}/, //Code code:/\d{1}/, //颜色 color:()=>Mock.Random.color(), //描述 desc:()=>Mock.Random.sentence(3, 5), //风险等级 level:/\d{1}/, //应采取措施 measure:()=>Mock.Random.sentence(3, 5), //实施期限 date:()=>Mock.Random.sentence(3, 5), //备注 note:()=>Mock.Random.sentence(3, 5) }], matrix:function (){ const matrix=[] for(let i in Array.from(new Array(this.info.y).keys())){ const child=[] for(let j in Array.from(new Array(this.info.x).keys())){ child.push(this.level[Mock.Random.natural(0,this.level.length-1)]) } matrix.push(child) } return matrix } } } }) res.json(data) }) route.addContextMenu(router,'matrix/:id/severity','风险严重程度') route.addContextMenu(router,'matrix/:id/possibility','风险严重程度') route.addContextMenu(router,'matrix/:id/level','风险严重程度') router.delete('/matrix/:id', function (req, res, next) { var data=mock.ok('矩阵删除成功') res.json(data) }) router.post('/matrix', function (req, res, next) { var data=mock.ok('矩阵拷贝成功') res.json(data) }) router.put('/matrix/:id', multipartMiddleware,function (req, res, next) { var data=mock.ok(`矩阵坐标(${+req.body.y+1},${+req.body.x+1})更新风险等级成功`) res.json(data) }) module.exports=router