You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

223 lines
7.8 KiB

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')
router.get('/analyse/all', function (req, res, next) {
var sst=Mock.mock({
"si|1-100":[{
t:/\d{3}/
}]
})
Array.from(new Array(20).keys()).forEach(value => {
let t={t:`${JSON.stringify({node:Mock.Random.word(),nodeId:Mock.Random.integer(1,10)})}`}
sst.si.push(t)
})
var data=Mock.mock({
...mock.ok(`HAZOP分析获取所有节点数据成功`),
...{
body:{
sst,
sheetData:{
row:function (){
let rowCount=50
let colCount=19
let rows=Array.from(new Array(rowCount).keys())
let cols=Array.from(new Array(colCount).keys())
for(let row in rows){
rows[+row]={
r:+row+1,
spans:`1:${colCount}`,
c:[]
}
for(let col in cols){
col=String.fromCharCode(+col+"A".charCodeAt())
rows[row].c.push({
r: `${col}${+row + 1}`,
s: 1,
t: 's',
v: (function (col){
switch (col){
case 'A':
return Mock.Random.integer(sst.si.length - 20, sst.si.length - 1)
default:
return Mock.Random.integer(0, sst.si.length - 21)
}
})(col)
}
)
}
}
return rows
}
},
mergeCells:{
mergeCell:[{ref:'A1:A10'}, {ref:'A11:A20'}, {ref:'A21:A30'}, {ref:'A31:A40'}, {ref:'A41:A50'}],
count:5
}
}
}
})
res.json(data)
})
//HAZOP分析
router.get('/analyse/:id', function (req, res, next) {
var sst=Mock.mock({
"si|1-100":[{
t:/\d{3}/
}]
})
var data=Mock.mock({
...mock.ok(`HAZOP分析获取节点${req.params.id}数据成功`),
...{
body:{
sst,
sheetData:{
row:function (){
let rowCount=50
let colCount=18
let rows=Array.from(new Array(rowCount).keys())
let cols=Array.from(new Array(colCount).keys())
for(let row in rows){
rows[+row]={
r:+row+1,
spans:`1:${colCount}`,
c:[]
}
for(let col in cols){
col=String.fromCharCode(+col+"A".charCodeAt())
rows[row].c.push({
r: `${col}${+row + 1}`,
s: 1,
t: 's',
v: Mock.Random.integer(0, sst.si.length - 1)
}
)
}
}
return rows
}
},
mergeCells:{
mergeCell:[],
count:0
}
}
}
})
res.json(data)
})
//获取当前项目使用矩阵
router.get('/analyse/matrix/:name', 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,'analyse/:id','HAZOP分析')
//HAZOP偏差知识库
router.get('/analyse/repository/:know', function (req, res, next) {
var data=mock.page(req,`查询${req.params.know}知识库成功`,{
//选项值
key: ()=>Mock.Random.word(),
//描述
value: ()=>Mock.Random.word()
})
res.json(data)
})
module.exports=router