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}/ }] }) 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: Mock.Random.integer(0, sst.si.length - 1) } ) } } 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