// import { random, omit } from 'lodash'; // import moment from 'moment'; // import { color } from 'html2canvas/dist/types/css/types/color'; //wyw 这个会影响 export function formatTimeByDuration(result, timeShowBlock = 1) { let h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600); let m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60)); let s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60)); if (timeShowBlock === 2) return result = h + ':' + m + ':' + s; else return result = m + ':' + s; } export function timeFix() { const time = new Date() const hour = time.getHours() return hour < 9 ? '早上好' : hour <= 11 ? '上午好' : hour <= 13 ? '中午好' : hour < 20 ? '下午好' : '晚上好' } export function getDepartmentName(value) { const codeMap = { '0': '全公司', '10': '选矿厂', '20': '尾矿库', '30': '露天矿', '40': '地下矿' }; // 去除首尾下划线并分割 const codes = value.replace(/^_+|_+$/g, '').split('_'); // 映射代码到部门名称并过滤无效代码 const departments = codes .map(code => codeMap[code]) .filter(name => name); // 拼接结果,若为空则返回未知部门 return departments.length > 0 ? departments.join('、') : '未知部门'; } // data = this.model.navDetail export function getRealIndex(item, data) { const validDetails = data.filter(i => !i.IS_DELETED); const index = validDetails.indexOf(item); const realIndex = data.findIndex(item => item === validDetails[index]); return realIndex } /** * 对Date的扩展,将 Date 转化为指定格式的String * 月(Y)、月(m)、日(d)、小时(H)、分(M)、秒(S) 可以用 1-2 个占位符, * 例子: * dateFormat('YYYY-mm-dd HH:MM:SS', new Date()) ==> 2020-01-01 08:00:00 */ export const dateFormat = (fmt, date) => { const opt = { "Y+": date.getFullYear().toString(), // 年 "m+": (date.getMonth() + 1).toString(), // 月 "d+": date.getDate().toString(), // 日 "H+": date.getHours().toString(), // 时 "M+": date.getMinutes().toString(), // 分 "S+": date.getSeconds().toString() // 秒 // 有其他格式化字符需求可以继续添加,必须转化成字符串 }; let ret for (let k in opt) { ret = new RegExp("(" + k + ")").exec(fmt) if (ret) { fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0"))) }; }; return fmt } export function formatSeconds(seconds) { const hours = Math.floor(seconds / 3600); const minutes = Math.floor((seconds % 3600) / 60); const secs = Math.floor(seconds % 60); const formattedHours = String(hours).padStart(2, '0'); const formattedMinutes = String(minutes).padStart(2, '0'); const formattedSecs = String(secs).padStart(2, '0'); if (hours > 0) { return `${formattedHours}:${formattedMinutes}:${formattedSecs}`; } return `${formattedMinutes}:${formattedSecs}`; } export function getProductionUnitValue(FMProductionUnit, input) { if (typeof input === 'number') { const index = input / 10; if (Number.isInteger(index) && index >= 0 && index < FMProductionUnit.length) { return FMProductionUnit[index]; } } else if (typeof input === 'string') { const index = FMProductionUnit.indexOf(input); if (index !== -1) { return index * 10; } } return null; } export function getKeyByValue(object, value) { for (let key in object) { if (object[key] === value) { return key; } } return null; } export function handleOriginalArray(array, keepArray) { let newarr = array.map((obj) => { const newobj = {}; keepArray.forEach((prop) => { if (obj.hasOwnProperty(prop)) { newobj[prop] = obj[prop] } }) return newobj }) return newarr } export function handleScrollHeader(callback) { let timer = 0 let beforeScrollTop = window.pageYOffset callback = callback || function() {} window.addEventListener( 'scroll', event => { clearTimeout(timer) timer = setTimeout(() => { let direction = 'up' const afterScrollTop = window.pageYOffset const delta = afterScrollTop - beforeScrollTop if (delta === 0) { return false } direction = delta > 0 ? 'down' : 'up' callback(direction) beforeScrollTop = afterScrollTop }, 50) }, false ) } /** * Remove loading animate * @param id parent element id or class * @param timeout */ export function removeLoadingAnimate(id = '', timeout = 1500) { if (id === '') { return } setTimeout(() => { document.body.removeChild(document.getElementById(id)) }, timeout) } // 节流 // 思路: 第一次先设定一个变量true, // 第二次执行这个函数时,会判断变量是否true, // 是则返回。当第一次的定时器执行完函数最后会设定变量为flase。 // 那么下次判断变量时则为flase,函数会依次运行。 export function throttle(fn, delay = 100) { // 首先设定一个变量,在没有执行我们的定时器时为null var timer = null return function() { // 当我们发现这个定时器存在时,则表示定时器已经在运行中,需要返回 if (timer) return timer = setTimeout(() => { fn.apply(this, arguments) timer = null }, delay) } } // 防抖 // 首次运行时把定时器赋值给一个变量, 第二次执行时, // 如果间隔没超过定时器设定的时间则会清除掉定时器, // 重新设定定时器, 依次反复, 当我们停止下来时, // 没有执行清除定时器, 超过一定时间后触发回调函数。 export function debounce(fun, delay) { return function(args) { // 获取函数的作用域和变量 const that = this const _args = args // 每次事件被触发,都会清除当前的timeer,然后重写设置超时调用 clearTimeout(fun.id) fun.id = setTimeout(function() { fun.call(that, _args) }, delay) } } /** * 判断是否为空对象 * @param {*} object 源对象 */ export function isEmptyObject(object) { return Object.keys(object).length === 0 } /** * 判断是否为对象 * @param {*} object */ export function isObject(object) { return Object.prototype.toString.call(object) === '[object Object]' } /** * 判断是否为对象 * @param {*} array */ export function isArray(array) { return Object.prototype.toString.call(array) === '[object Array]' } /** * 判断是否为空 * @param {*} object 源对象 */ export function isEmpty(value) { if (isArray(value)) { return value.length === 0 } if (isObject(value)) { return isEmptyObject(value) } return !value } /** * 判断是否在数组中 * @param {*} search * @param {*} array */ export function inArray(search, array) { return array.includes(search) } /** * 获取指定天数的日期 * @param day * @returns {string} */ export function getDateByDay(day) { var today = new Date() var targetdaySeconds = today.getTime() + 1000 * 60 * 60 * 24 * day today.setTime(targetdaySeconds) // 注意,这行是关键代码 return today.getFullYear() + '-' + zeroFillLeft(today.getMonth() + 1) + '-' + zeroFillLeft(today.getDate()) } /** * 左侧补0 * @param value * @returns {*} */ export function zeroFillLeft(value) { return (value.toString().length === 1) ? ('0' + value) : value } /** * 批量给指定对象赋值 * @param obj obj 指定的对象,一般为vue实例 * @param obj assignment 赋值的元素 { a: '123' } */ export function assignment(obj, assignment) { Object.keys(assignment).forEach(key => { obj[key] = assignment[key] }) } /** * 对象转URL * @param {object} obj */ export const urlEncode = (obj = {}) => { const result = [] for (const key in obj) { const item = obj[key] if (!item) { continue } if (isArray(item)) { item.forEach(val => { result.push(key + '=' + val) }) } else { result.push(key + '=' + item) } } return result.join('&') } export const formatTime = date => { const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const hour = date.getHours() const minute = date.getMinutes() const second = date.getSeconds() return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':') } /** * 生成url (带参数) * @param {string} path 链接 * @param {object} params query参数 */ export function buildUrL(path, params) { const queryStr = urlEncode(params) if (!isEmpty(queryStr)) { return path + '?' + queryStr } return path } const RFC4122_TEMPLATE = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'; // export function uuid(placeholder) { // return RFC4122_TEMPLATE.replace(/[xy]/g, function () { // let value = random(15) // value = placeholder === 'x' ? value : (value & 0x3 | 0x8) // return value.toString(16) // }) // } export function Base64_Encode(str) { // base64转换 let c1, c2, c3; let base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; let i = 0; let len = str.length; let string = ''; while (i < len) { c1 = str.charCodeAt(i++) & 0xff; if (i === len) { string += base64EncodeChars.charAt(c1 >> 2); string += base64EncodeChars.charAt((c1 & 0x3) << 4); string += "=="; break; } c2 = str.charCodeAt(i++); if (i === len) { string += base64EncodeChars.charAt(c1 >> 2); string += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); string += base64EncodeChars.charAt((c2 & 0xF) << 2); string += "="; break; } c3 = str.charCodeAt(i++); string += base64EncodeChars.charAt(c1 >> 2); string += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); string += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6)); string += base64EncodeChars.charAt(c3 & 0x3F); } return string; } export function guid() { function S4() { return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1) } return S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4(); } export function extend(obj1, obj2) { if (typeof(obj2) === 'object') for (let p in obj2) obj1[p] = obj2[p]; } export function extendRule(obj, filed, op, value, isSysParam) { //查询条件 let data = {}; if (value === null) { value = ''; } data['Field'] = filed; data['Operate'] = op; data['Value'] = isSysParam ? value.toString() : value; if (isSysParam) { data["IsSysParamRule"] = true; } if (!obj.FilterGroup) { obj.FilterGroup = {}; } if (!obj.FilterGroup.Rules) { obj.FilterGroup.Rules = []; } obj.FilterGroup.Rules.push(data); } export function initFilterGroup(IsAnd = true) { return { IsAnd, Rules: [], Groups: [], } } export function extendFilterGroup(obj, obj2) { if (!obj.FilterGroup) { obj.FilterGroup = {}; } if (!obj.FilterGroup.Groups) { obj.FilterGroup.Groups = []; } obj.FilterGroup.Groups.push(obj2); } export function extendChildGroup(obj, obj2) { if (!obj.Groups) { obj.Groups = []; } obj.Groups.push(obj2); } export function extendGroupRule(obj, filed, op, value, isSysParam) { //查询条件 let data = {}; if (value === null) { value = ''; } data['Field'] = filed; data['Operate'] = op; data['Value'] = isSysParam ? value.toString() : value; if (isSysParam) { data["IsSysParamRule"] = true; } if (!obj.Rules) { obj.Rules = []; } obj.Rules.push(data); } export function initQueryFilter(OrgId, PageIndex, Limit, Sort, Order) { return { OrgId, PageIndex, Limit, Start: (PageIndex - 1) * Limit, Sort, Order: (Order === '' ? 0 : Order), RuleCount: 0, IncludeCount: 0, OrderCount: 0, FilterGroupCount: 0, Include: [], Orders: [], FilterGroup: { Rules: [], Groups: [] } }; } export function initFilter(OrgId, Keyword = "", Sort, Order, PageIndex = 1, Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6) { return { Keyword, Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, OrgId, PageIndex, Limit: 10, Start: (PageIndex - 1) * 10, Sort, Order: (Order === '' ? 0 : Order), RuleCount: 0, IncludeCount: 0, OrderCount: 0, FilterGroupCount: 0, Include: [], Orders: [], FilterGroup: { Rules: [], Groups: [] }, SelectField: [], DataRule: [], IgnoreDataRule: false }; // let params = $("#search-form").elFilterParam(); // extend(json, params); } export function extendInclude(obj, clude) { if (!obj.Include) { obj.Include = []; } obj.Include.push(clude); } //wyw 添加 子表过滤条件 export function extendFilterGroupGroupRules(obj, filed, op, value, isSysParam) { //查询条件 let data = {}; if (value === null) { value = ''; } data['Field'] = filed; data['Operate'] = op; data['Value'] = isSysParam ? value.toString() : value; if (isSysParam) { data["IsSysParamRule"] = true; } if (!obj.FilterGroup) { obj.FilterGroup = {}; } if (!obj.FilterGroup.Groups) { obj.FilterGroup.Groups = []; } if (obj.FilterGroup.Groups.length == 0) { let groupGroup = initFilterGroup(false) obj.FilterGroup.Groups.push(groupGroup) } if (!obj.FilterGroup.Groups[0].Rules) { obj.FilterGroup.Groups[0].Groups = []; obj.FilterGroup.Groups[0].Rules = []; obj.FilterGroup.Groups[0].IsAnd = false; } obj.FilterGroup.Groups[0].Rules.push(data); } export function extendOrder(obj, filed, order) { var data = {}; data["Field"] = filed; data["Order"] = order; if (!obj.Orders) { obj.Orders = []; } obj.Orders.push(data); } export function extendIgnoreDataRule(obj) { obj.IgnoreDataRule = true } function trim(str) { // ? for (var i = 0; i < str.length && str.charAt(i) == " "; i++) ; for (var j = str.length; j > 0 && str.charAt(j - 1) == " "; j--) ; if (i > j) return ""; return str.substring(i, j); } export function empty(v, allowZero) { if (v === "null" || v === undefined || v === "") return true; switch (typeof v) { case 'undefined': return true; case 'string': if (trim(v).length == 0) return true; break; case 'boolean': if (!v) return true; break; case 'number': if (0 === v && !allowZero) return true; break; case 'object': if (null === v) return true; if (undefined !== v.length && v.length == 0) return true; for (var k in v) { return false; } return true; default: return false; } } export function strConvert(target, def) { // 点字符串转对象 // str为需要转换的值, def为有固定的最后一个属性值 let splitFiles = target.split('.'); let str = ''; let len = splitFiles.length; splitFiles.forEach(item => { str += '{\"' + item + '\":' }); str += "" + def + "" for (let j = 0; j < len; j++) { str += '}' } let mat = JSON.parse(str); return mat } //仅仅获取对象的基础属性,不包含属性中的对象 export function getOnlyPropertyData(data, isGetSysParam) { let result = {}; Object.keys(data).forEach((n) => { if (n.indexOf('.') !== -1) return; if (isGetSysParam && n === 'Nav_SysParams') { result[n] = data[n]; } else if (Array.isArray(data[n])) { result[n] = data[n]; } else if (typeof(data[n]) !== "object") { result[n] = data[n]; } }); return result; } //仅仅获取对象的基础属性及列表,不包含属性中的对象 export function getPropertyData(data, isSetDelete) { let result = {}; Object.keys(data).forEach((n) => { if (n.indexOf('.') != -1) return; if (typeof(data[n]) !== "object") { result[n] = data[n]; } else if (data[n] && data[n].length) { const array = []; data[n].forEach(nx => { const d = getPropertyData(nx, isSetDelete); array.push(d); }); result[n] = array; } if (isSetDelete) { result['IS_DELETED'] = true; } }); return result; } // 取导航属性的最后一个字段 export function dataIndexName(field) { const valueValid = field ? field.split('.') : []; return valueValid[valueValid.length - 1] } export function splitEnum(str) { let newArr = []; let oArr = str ? str.split(',') : []; oArr.forEach(item => { let n = item.split(':'); newArr.push({ label: n[0], value: n[1] }) }); return newArr } export function getDataFieldValueByCol(data, field, defaultValue) { if (!data || !field) return null; let opIndex = field.lastIndexOf('/'); let op = 0; if (opIndex === -1) { opIndex = field.indexOf('*'); if (opIndex === -1) { opIndex = field.indexOf('+'); if (opIndex === -1) { opIndex = field.lastIndexOf('-'); if (opIndex !== -1) { op = 2; } } else { op = 1; } } else { op = 3; } } else { op = 4; } let controlValue = null; if (opIndex !== -1) { const leftField = field.substring(0, opIndex); const rightField = field.substring(opIndex + 1); const leftText = getDataFieldValueByCol(data, leftField); const rigthText = getDataFieldValueByCol(data, rightField); if (leftText !== '' && rigthText !== '' && !isNaN(leftText) && !isNaN(rigthText)) { if (op === 1) { controlValue = (+leftText) + (+rigthText); } else if (op === 2) { controlValue = (+leftText) - (+rigthText); } else if (op === 3) { controlValue = (+leftText) * (+rigthText); } else if (op === 3 && (+rigthText) !== 0) { controlValue = (+leftText) / (+rigthText); } } } else { controlValue = getDataFieldValue(data, field, defaultValue); } return controlValue; } function innerGetDataFieldValue(data, field, defaultValue) { if (!data || !field) return null; const valueValid = field ? field.split('.') : []; let controlValue = null; let tmp = { ...data }; if (tmp) { for (let j = 0; j < valueValid.length; j++) { if (j < valueValid.length - 1) { if (!Array.isArray(tmp)) { if (tmp && tmp.hasOwnProperty(valueValid[j])) { tmp = tmp[valueValid[j]]; } else { tmp = null; } } else { let arrayTmp = []; tmp.forEach(item => { if (item && item.hasOwnProperty(valueValid[j])) { arrayTmp.push(item[valueValid[j]]); } }) tmp = arrayTmp; } } else { if (!Array.isArray(tmp)) { if (tmp && tmp.hasOwnProperty(valueValid[j])) { controlValue = tmp[valueValid[j]]; } } else { controlValue = ''; tmp.forEach(item => { controlValue += item[valueValid[j]] + ","; }) if (controlValue && controlValue.indexOf(',') > 0) { controlValue = controlValue.substring(0, controlValue.length - 1); } } } } } if (controlValue == null && defaultValue !== undefined) { return defaultValue; } return controlValue; } export function getDataFieldValue(data, field, defaultValue) { if (!data || !field) { if (defaultValue !== undefined) { return defaultValue; } return null; } const key = 'Nav_SysParams'; const index = field.indexOf(key); if (index === -1) { return innerGetDataFieldValue(data, field, defaultValue); } else { const f1 = index > 0 ? field.substring(0, index - 1) : null; const f2 = field.substring(index + key.length + 1); let temp = null; if (f1) { temp = innerGetDataFieldValue(data, f1); } else { temp = data; } if (temp) { let sysParams = temp[key]; if (sysParams) { let paramRecord = sysParams.filter(t => t.CODE === f2)[0]; if (paramRecord) { return paramRecord.VALUE; } } } } if (defaultValue !== undefined) { return defaultValue; } return null; } function innerSetDataFieldValue(data, field, value) { let tmp = data; const valueValid = field ? field.split('.') : []; for (let j = 0; j < valueValid.length; j++) { if (j < valueValid.length - 1) { if (!tmp.hasOwnProperty(valueValid[j]) || !tmp[valueValid[j]]) { tmp[valueValid[j]] = {}; } let tmpData = tmp[valueValid[j]]; if (!tmpData) { tmpData = {}; } tmp = tmpData; } else { tmp[valueValid[j]] = value; } } return data; } export function setDataFieldValue(data, field, value) { if (!data || !field) return data; const key = 'Nav_SysParams'; const index = field.indexOf(key); if (index === -1) { innerSetDataFieldValue(data, field, value); } else { const f1 = index > 0 ? field.substring(0, index - 1) : null; const f2 = field.substring(index + key.length + 1); let temp = null; if (f1) { temp = innerGetDataFieldValue(data, f1); if (!temp) { temp = {}; innerSetDataFieldValue(data, f1, temp); } } else { temp = data; } let sysParams = temp[key]; if (!sysParams) { sysParams = []; temp[key] = sysParams; } let paramRecord = sysParams.filter(t => t.CODE === f2)[0]; if (!paramRecord) { paramRecord = { ID: guid(), CODE: f2, ENTITY_ID: temp.ID, } sysParams.push(paramRecord); } paramRecord.VALUE = value; } return data; } export function permissionUtils(login) { const checkPermission = (formId, keyId, type) => { if (login.userType == 99 || !formId) return true; //管理员 let hasPermission = false; const currActivatedMenu = login.currActivatedMenu || {} if (login.rolePerm && login.rolePerm.Nav_RolePermForms && login.rolePerm.Nav_RolePermForms .length) { //只要一个角色有权限就有权限 /** * hasPermssion 判断为 true 之后,必须直接赋值为 true, * 不能用条件判断(比如:hasPermission = matchForm;)去赋值 * 因为一直在循环,满足 if 条件后,可能 hasPermission 又被置为 false 了 */ login.rolePerm.Nav_RolePermForms.forEach((n1, i1) => { if (!currActivatedMenu.ID) { hasPermission = true } else { if (n1.PermFormId === formId) { const matchForm = (n1.MenuId === currActivatedMenu.ID || !currActivatedMenu.ID) if (type == 0 && matchForm) { //表单权限 hasPermission = true; } else if (type == 1) { //按钮权限 if (n1.Nav_Btns && n1.Nav_Btns.length) { n1.Nav_Btns.forEach((n2, i2) => { const matchBtn = (n2.MenuId === currActivatedMenu.ID || ! currActivatedMenu.ID) if (n2.BtnId === keyId && matchBtn) { hasPermission = true; } }); } } else if (type == 2) { //行权限 if (n1.Nav_Columns && n1.Nav_Columns.length) { n1.Nav_Columns.forEach((n2, i2) => { const matchRow = (n2.MenuId === currActivatedMenu.ID || ! currActivatedMenu.ID) if (n2.ColumnId === keyId && matchRow) { hasPermission = true; } }); } } } } }); } return hasPermission; }; return { checkBtn: (formId, btnId) => { return checkPermission(formId, btnId, 1); }, checkColumn: (formId, columnId) => { return checkPermission(formId, columnId, 2); }, checkForm: (formId) => { return checkPermission(formId, '', 0); }, }; } //根据枚举字符串获取枚举列表 export function getEnums(str) { let newArr = {}; let oArr = str ? str.split(',') : []; oArr.forEach(item => { let n = item.split(':'); newArr[[n[1]]] = n[0]; }); return newArr } export function getCustomParams(customParamsStr) { const customParams = {}; if (customParamsStr && typeof customParamsStr === 'string') { let arrays = customParamsStr.split('|'); arrays.forEach(function(n, i) { let paris = n.split("="); if (paris.length >= 2) { customParams[paris[0]] = paris[1]; } else { customParams[paris[0]] = null; } }); } return customParams; } export function getGroupByQueryFields(fields, groups, parentId, parent, list) { if (groups && groups.length) { const tempGroups = groups.filter(t => t.PARENT_ID === parentId); if (tempGroups && tempGroups.length) { tempGroups.forEach(t => { const group = { rules: [], childGroups: [], isAnd: t.RELATION_TYPE !== 1, }; if (fields && fields.length) { const tempFields = fields.filter(t1 => t1.USER_C_C_QUERY_GROUP_ID === t.ID); if (tempFields && tempFields.length) { group.rules = getRulesByQueryFields(tempFields, group.childGroups); } } if (parent) { parent.childGroups.push(group) } else { list.push(group); } getGroupByQueryFields(fields, groups, t.ID, group, list); }); } } } export function getRuleAndGroupsByQueryFields(queryFields, queryGroups) { const result = {}; if (queryFields != null && queryFields.length) { const sysFields = queryFields.filter(t => !t.USER_C_C_QUERY_GROUP_ID); result.groups = []; result.rules = getRulesByQueryFields(sysFields, result.groups); getGroupByQueryFields(queryFields, queryGroups, null, null, result.groups); } return result; } export function locationQuery(query) { if (!query) return {}; let querys = query.split('?')[1]; let pair = querys.split('&'); let obj = {}; for (let i = 0; i < pair.length; i++) { let propertys = pair[i].split('='); obj[propertys[0]] = propertys[1] } return obj; } export function addChildGroups(list, group) { if (list && list.length) { list.forEach(t => { const tempGroup = initFilterGroup(t.isAnd); if (t.rules && t.rules.length) { t.rules.forEach(t1 => { extendGroupRule(tempGroup, t1.field, t1.operator, t1.value, t1.isSysParam); }); } if (t.childGroups && t.childGroups.length) { addChildGroups(t.childGroups, tempGroup); } extendChildGroup(group, tempGroup); }); } } // export function getRandomCode(len) { // len = len || 32; // var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678=-*&@#$%!~+,./?\;:|' /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/ // var maxPos = $chars.length; // var pwd = ''; // for (var i = 0; i < len; i++) { // pwd += $chars.charAt(Math.floor(Math.random() * maxPos)); // } // return pwd; // } export function addRuleAndGroups(json, ruleAndGroupJson) { if (json && ruleAndGroupJson) { if (ruleAndGroupJson.rules && ruleAndGroupJson.rules.length) { ruleAndGroupJson.rules.forEach(t => { if (t.isCustom) { //自定义字段 if (t.field.indexOf(',') > -1) //modify by陈昌雨 2020/6/4 { var splitFileds = t.field.split(','); let values = null; if (typeof(t.value) === 'number' && t.value !== undefined && t.value != null) { values = t.value.toString().split(','); } else { values = t.value.split(','); } if (splitFileds && values) { splitFileds.forEach((n, i) => { json[n] = values[i]; }); } } else { json[t.field] = t.value; } } else { extendRule(json, t.field, t.operator, t.value, t.isSysParam); } }); } if (ruleAndGroupJson.groups && ruleAndGroupJson.groups.length) { ruleAndGroupJson.groups.forEach(t => { const tempGroup = initFilterGroup(t.isAnd); if (t.rules && t.rules.length) { t.rules.forEach(t1 => { extendGroupRule(tempGroup, t1.field, t1.operator, t1.value, t1.isSysParam); }); } if (t.childGroups && t.childGroups.length) { addChildGroups(t.childGroups, tempGroup); } extendFilterGroup(json, tempGroup); }); } if (ruleAndGroupJson.orgType) { json.OrgType = ruleAndGroupJson.orgType; } if (ruleAndGroupJson.menuParameter) { json.MenuParameter = ruleAndGroupJson.menuParameter } } } export function constructStandardTreeData(data, cascader) { data.forEach(item => { const { Node, Children } = item const { NAME, ID } = Node if (cascader) { item.label = NAME item.value = ID Array.isArray(Children) && Children.length && (item.children = Children) for (let key in Node) { item[key] = Node[key] } } else { item.title = NAME item.key = ID item.value = ID item.children = Children } if (Array.isArray(Children) && Children.length) { constructStandardTreeData(Children, cascader) } }) } // 树搜索 // export function flatTreeData(tree = [], data = []) { // if (Array.isArray(tree) && tree.length) { // tree.forEach(item => { // data.push(omit(item, ['children'])) // flatTreeData(item.children, data) // }) // } // } export function digTreeData(arr, target) { for (let i = 0, j = arr.length; i < j; i++) { if (arr[i].Node && arr[i].Node.ID === target) return arr[i] if (Array.isArray(arr[i].Children) && arr[i].Children.length) { const result = digTreeData(arr[i].Children, target) if (result) return result } } } export function toFixed(num, base = 2, notCeil = true) { if (typeof num !== 'number') return num let str = num.toFixed(notCeil ? base + 1 : base) base === 0 && notCeil && (str = str.substring(0, str.length - 1)) // 防止出现 120. 这类多一个点的字符串 return str.substring(0, notCeil ? str.length - 1 : str.length) } //排序 export function compare(obj1, obj2) { var val1 = obj1.num; var val2 = obj2.num; if (val1 < val2) { return -1; } else if (val1 > val2) { return 1; } else { return 0; } } export function validUUID(value) { if (!value) return false if (value.toString().split('-').length === 4 && value.toString().length === 32) return true if (value.toString().split('-').length === 5 && value.toString().length === 36) return true return false } //显示用户签名 export function showUsersSign(listUsers, imgHost, width, height) { var result = [] if (width == undefined) { width = 200 } if (height == undefined) { height = 50 } listUsers = listUsers.sort(function(a, b) { if (a.CREATE_TIME > b.CREATE_TIME) { return 1 } else { return -1 } }) // listUsers?.map((item, i) => { // if (item.Nav_User != null && item.Nav_User.Nav_UserSignFiles != null && item.Nav_User.Nav_UserSignFiles.length > 0) { // result.push( < img width = { // width // } // style = {{margin: "0 0 0 5px", // maxHeight: "100px" // } // } // src = { // imgHost + item.Nav_User?.Nav_UserSignFiles[0]?.Nav_ImgFile.FILE_PATH // } // title = { // item.Nav_User?.NAME // } // alt = { // item.Nav_User?.NAME // } // />) // } // else { // result.push( < img width = { // width // } // style = { // { // margin: "0 0 0 5px", // maxHeight: "100px" // } // } // src = '' // title = { // item.Nav_User?.NAME // } // alt = { // item.Nav_User?.NAME // } // />) // } // }) return result } //显示用户签名 export function showUserSign(user, imgHost, width, height) { var result = [] if (width == undefined) { width = 200 } if (height == undefined) { height = 50 } // height={height} // if (user != null && user.Nav_UserSignFiles != null && user.Nav_UserSignFiles.length > 0) { // result.push( < img width = { // width // } // style = { // { // margin: "0 0 0 5px", // maxHeight: "100px" // } // } // src = { // imgHost + user?.Nav_UserSignFiles[0]?.Nav_ImgFile.FILE_PATH // } // title = { // user.NAME // } // alt = { // user.NAME // } // />) // } // else { // result.push( < img width = { // width // } // style = { // { // margin: "0 0 0 5px", // maxHeight: "100px" // } // } // src = '' // title = { // user.NAME // } // alt = { // user.NAME // } // />) // } return result } //判断是PC还是移动端 export function getIsPC() { if (navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/WebOS/i) || navigator .userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent .match(/iPod/i) || navigator.userAgent.match(/Windows Phone/i)) { return false } else { return true } } //task未空的onBeforeSaveHandleRecord事件日志 export function onBeforeSaveHandleRecordLog(params, formCode, title) { if (params.data.TaskID == '00000000-0000-0000-0000-000000000000' || params.data.id == '00000000-0000-0000-0000-000000000000') { var orgId = params.login.OrgId; //登录后有存储登录信息 let json = initFilter(orgId, null, null, null, null, formCode, title, params.data.TaskID, " params.pageCode:[" + params.pageCode + "] params.data.id:[" + params.data.id + "] UserId:[" + params.login.loginInfo.User.ID + "] params.data.taskCode: [" + params .data.taskCode + "] homeReload: [" + params.data.homeReload + "]"); params.dispatch({ type: 'app/getDataByPost', url: 'PF/PFSysLog/addLog', payload: json, onlyData: false, onComplete: (ret) => {} }) } } //显示附件 export function showFiles(Nav_Files, imgHost) { var result = [] // Nav_Files && Nav_Files?.map((item, i) => { // result.push( < a width = { // '20%' // } // title = { // item.Nav_ImgFile.FILE_NAME // } // target = '_blank' // href = { // imgHost + item.Nav_ImgFile.FILE_PATH // } > { // item.Nav_ImgFile.FILE_NAME // } < /a>) // }) return result } export function ShowDateTime(datetime, fmt) { if (datetime == undefined || datetime == null || datetime.length < 1) { return '' } else { if (fmt == undefined || fmt == null || fmt.length < 1) fmt = 'yyyy-MM-dd' return new Date(datetime).Format(fmt) } } export function downLoad(imgHost, fileName) { if (fileName) { let link = document.createElement('a') link.href = imgHost + '/' + fileName document.body.appendChild(link) window.open(link) } else { alert('获取参数配置失败!') } } Date.prototype.Format = function(fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "H+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1 .length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; } export function ShowPrintClose(props) { if (typeof props.data.onCancel != "undefined" && typeof props.data.onCancel == 'function') props.data.onCancel(); } //附件数据结构转换 export function fileStructChange(files) { let result = [] files.forEach(e => { result.push({ ...e, remotePath: e.Nav_ImgFile.FILE_PATH, name: e.Nav_ImgFile.FILE_NAME }) }) return result } //查重 export function duplicated(array) { for (let j = 0; j < array.length; j++) { if (array.indexOf(array[j]) < array.lastIndexOf(array[j])) { return true } } return false; } export function ApproveCode(json) { let linkToUrl = '' switch (json) { case 'BS006_SHOWPRINT': //隐患上报审批 XLK100635 linkToUrl = '/pages/apply/subPages/BS/riskSumbitAudit' break; case 'BS032_SHOWPRINT': //制表审批 linkToUrl = '/pages/apply/subPages/BS/checkPlanNotice' break; case 'BS034_SHOWPRINT': //检查确认 linkToUrl = '/pages/apply/subPages/BS/safeCheckAudit' //待做 break; case 'BS044_SHOWPRINT': //整改记录审批 linkToUrl = '/pages/apply/subPages/BS/riskSumbitDealAudit' break; case 'BS046_SHOWPRINT': //延期申请审批 linkToUrl = '/pages/apply/subPages/BS/delayApplyView' break; case 'HM061_SHOWPRINT': //危险源和风险辨识任务 linkToUrl = '/pages/apply/subPages/HM/1riskTaskShow' break; case 'HM063_SHOWPRINT': //危险源和风险辨识任务 linkToUrl = '/pages/apply/subPages/HM/2riskRecordShow' break; case 'HM101_SHOWPRINT': //职业危害辨识记录签到 linkToUrl = '/pages/apply/subPages/HM/3hazardTaskShow' break; case 'HM099_SHOWPRINT': //职业危害辨识记录签到 linkToUrl = '/pages/apply/subPages/HM/3hazardRecordShow' break; case 'SE009_SHOWPRINT': //部门计划 linkToUrl = '/pages/apply/subPages/SE/3depTrainPlanShow' break; case 'SE011_SHOWPRINT': //年度计划 linkToUrl = '/pages/apply/subPages/SE/4yearTrainPlanShow' break; case 'FO015_SHOWPRINT': //一般作业活动记录审批 linkToUrl = '/pages/apply/subPages/FO2/jobEventShow' break; case 'FO017_SHOWPRINT': //工作票审批 linkToUrl = '/pages/apply/subPages/FO2/jobShow' break; case 'FO025_SHOWPRINT': //工作票审批外包 linkToUrl = '/pages/apply/subPages/FO2/jobOutsourceShow' break; case 'HM104_SHOWPRINT': //作业任务识别审批 linkToUrl = '../apply/subPages/HM2/jobTaskIdentityShow' break; case 'HM087_SHOWPRINT': //作业任务分析审批 linkToUrl = '../apply/subPages/HM2/jobTaskAnalyzeShow' break; case 'HM107_SHOWPRINT': //许可作业审批 linkToUrl = '../apply/subPages/HM2/jobTaskLicenseShow' break; case 'HM109_SHOWPRINT': //关键作业审批 linkToUrl = '../apply/subPages/HM2/jobTaskCrucialShow' break; case 'HM111_SHOWPRINT': //一般作业审批 linkToUrl = '../apply/subPages/HM2/jobTaskOrdinaryShow' break; case 'SC030_SHOWPRINT': // 会议纪要审批 linkToUrl = '../apply/subPages/SCMT/meetingMinutesCheck' break; case 'PT020_SHOWPRINT': //安全生产目标与指标 linkToUrl = '../apply/subPages/SCPT/formulationDepartmentShow' break; case 'PT024_SHOWPRINT': //考核方案审核 linkToUrl = '../apply/subPages/SCPT/PlanAuditShow' break; case 'SK006': //安全检查通知 linkToUrl = '../apply/subPages/SK/safeCheckEditNew' break; case 'SK006_SHOWPRINT': //安全检查通知 linkToUrl = '../apply/subPages/SK/safeCheckShow' break; case 'SK010': //安全检查通知 linkToUrl = '../apply/subPages/SK/safeCheckRecordEditNew' break; case 'SK010_SHOWPRINT': //安全检查通知 linkToUrl = '../apply/subPages/SK/safeCheckRecordShow' break; case 'SK012': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/safeCheckRecordSummaryEditNew' break; case 'SK012_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/safeCheckRecordSummaryShow' break; case 'SK014': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskReportEditNew' break; case 'SK014_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskReportShow' break; case 'SK016': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskHandelEditNew' break; case 'SK016_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskHandelShow' break; case 'SK018': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskVerifyEditNew' break; case 'SK018_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskVerifyShow' break; case 'SK020': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskRectifyEditNew' break; case 'SK020_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskRectifyShow' break; case 'SK022': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskRectifyRecordEditNew' break; case 'SK022_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskRectifyRecordShow' break; case 'SK024': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskRectifyDeferredEditNew' break; case 'SK024_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskRectifyDeferredShow' break; case 'SK031': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeRecEdit' break; case 'SK031_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeRecShow' break; case 'SK033': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeIdenEdit' break; case 'SK033_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeIdenShow' break; case 'SK035': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeIdenResEdit' break; case 'SK035_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeIdenResShow' break; case 'SK037_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeIdenSumShow' break; case 'SK039': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeEvaluateEditNew' break; case 'SK039_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeEvaluateShow' break; case 'SK041_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeEvaSumShow' break; case 'SK026': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskDouPreEditNew' break; case 'SK026_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskDouPreShow' break; case 'PT029_SHOWPRINT': // 监测与考核记录 linkToUrl = '../apply/subPages/SCPT/monitorAssessmentShow' break; case 'PR026_SHOWPRINT': //变化识别落实表 linkToUrl = '../apply/subPages/SCPT/changeImplementShow' break; case 'TL037_SHOWPRINT': //变化识别落实表 linkToUrl = '../apply/subPages/TL/watchDailyShow' break; case 'WB013': //外包作业许可申请 linkToUrl = '/pages/apply/subPages/SCWB/dangerApply' break; case 'WB013_SHOWPRINT': //外包工程危险作业审批表 linkToUrl = '/pages/apply/subPages/SCWB/WB013_SHOWPRINT' break; case 'WB031_SHOWPRINT': //外包工程安全检查记录表-确认 linkToUrl = '/pages/apply/subPages/SCWB/WB031_SHOWPRINT' break; case 'WB037_SHOWPRINT': //外包工程安全检查记录表-确认 linkToUrl = '/pages/apply/subPages/SCWB/WB037_SHOWPRINT' break; case 'WB039_SHOWPRINT': //外包工程安全检查记录表-确认 linkToUrl = '/pages/apply/subPages/SCWB/WB039_SHOWPRINT' break; case 'DM032_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM032_SHOWPRINT' break; case 'DM034_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM034_SHOWPRINT' break; case 'DM014_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM014_SHOWPRINT' break; case 'DM016_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM016_SHOWPRINT' break; case 'DM010_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM010_SHOWPRINT' break; case 'DM008_SHOWPRINT': case 'DM008_SHOWSUMMARY': linkToUrl = '../apply/subPages/DM/DM008_SHOWPRINT' break; case 'DM030_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM030_SHOWPRINT' break; case 'DM012_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM012_SHOWPRINT' break; case 'DM045_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM045_SHOWPRINT' break; } return linkToUrl } export function SourceFormcode(json) { let linkToUrl = '' switch (json) { case 'BS032': //检查通知 确认 linkToUrl = '../apply/subPages/BS/plan' break; case 'BS032_SHOWPRINT': //检查通知 确认 linkToUrl = '../apply/subPages/BS/checkPlanNotice' break; case 'BS057': //检查登记 linkToUrl = '../apply/subPages/BS/safeCheckSign' break; case 'BS034': //检查确认 linkToUrl = '../apply/subPages/BS/safeCheckCheck' break; case 'BS006': //检查 隐患上报 linkToUrl = '../apply/subPages/BS/riskSumbit' break; case 'BS061': //检查 手动隐患上报指定整改部门 linkToUrl = '../apply/subPages/BS/riskSumbitUserDep' break; case 'BS073': //检查 手动隐患上报指定整改部门 linkToUrl = '../apply/subPages/BS/riskSumbitUserDepNew' break; case 'BS074': //指定落实人 linkToUrl = '../apply/subPages/BS/riskSumbitNoticeToActual' break; case 'BS062': //检查 隐患上报(驳回重新上报) linkToUrl = '../apply/subPages/BS/riskSumbitBack' break; case 'BS042': //隐患整改通知 linkToUrl = '../apply/subPages/BS/riskSumbitNotice' break; case 'BS042_SHOWPRINT': //隐患整改通知: 确认 linkToUrl = '../apply/subPages/BS/riskSumbitNoticeCheck' break; case 'BS049': //指定整改落实人 linkToUrl = '../apply/subPages/BS/riskSumbitActualDeal' break; case 'BS042_ACTUALCHECK': //整改落实人 确认 linkToUrl = '../apply/subPages/BS/riskSumbitActualDealCheck' break; case 'BS044': //隐患整改单 linkToUrl = '../apply/subPages/BS/riskSumbitDeal' break; case 'BS044_CHECK': //整改验收 责任人 linkToUrl = '../apply/subPages/BS/riskSumbitDealCheck' break; case 'BS046': //隐患整改单 linkToUrl = '../apply/subPages/BS/delayApply' break; case 'BS046_SHOWPRINT': //延期申请审批 linkToUrl = '/pages/apply/subPages/BS/delayApplyView' break; case 'BS069': //检查记录确认退回 linkToUrl = '/pages/apply/subPages/BS/riskSumbitDetailBack' break; case 'BS078': //新问题 linkToUrl = '/pages/apply/subPages/BS/riskSumbitNewQuestion' break; case 'BS081': //指定责任单位 linkToUrl = '/pages/apply/subPages/BS/riskSumbitUserDepInfo' break; case 'BS074_SHOWPRINT': //指定责任单位 linkToUrl = '/pages/apply/subPages/BS/riskSumbitNoticeToActual' break; case 'BS044_SHOWPRINT': //隐患整改单 linkToUrl = '../apply/subPages/BS/riskSumbitDeal' break; case 'BS034_VIEW': //检查确认 linkToUrl = '../apply/subPages/BS/safeCheckCheck' break; case 'BS069_SHOWPRINT': //检查记录确认退回 linkToUrl = '/pages/apply/subPages/BS/riskSumbitDetailBack' break; case 'BS073_SHOWPRINT': //检查 手动隐患上报指定整改部门 linkToUrl = '../apply/subPages/BS/riskSumbitUserDepNew' break; case 'BS049_SHOWPRINT': //检查 手动隐患上报指定整改部门 linkToUrl = '../apply/subPages/BS/riskSumbitActualDeal' break; case 'BS006_VIEW': //检查 手动隐患上报指定整改部门 linkToUrl = '../apply/subPages/BS/riskSumbit' break; case 'FO003_SHOWPRINT': //班前会议签到 linkToUrl = '../apply/subPages/FO/1preShiftMeetingShow' break; case 'FO003': //班前会议编辑 linkToUrl = '../apply/subPages/FO/1preShiftMeetingEdit' break; case 'FO003_JD': //新班前会议签到 linkToUrl = '../apply/subPages/FO/1newPreShiftMeetingEdit' break; case 'FO003_SHOWPRINTJD': //班前会议签到 linkToUrl = '../apply/subPages/FO/1newPreShiftMeetingShow' break; case 'FO005_SHOWPRINT': //岗位当班签到 linkToUrl = '../apply/subPages/FO/2currentClassRecordShow' break; case 'FO005': //岗位当班编辑 linkToUrl = '../apply/subPages/FO/2currentClassRecordEdit' break; case 'FO013_SHOWPRINT': //岗位交接班签到 linkToUrl = '../apply/subPages/FO/3changeShiftRecordShow' break; case 'FO012': //岗位交接班编辑 linkToUrl = '../apply/subPages/FO/3changeShiftRecordEdit' break; case 'FO010_SHOWPRINT': //班组安全活动签到 linkToUrl = '../apply/subPages/FO/4teamActivityShow' break; case 'FO010': //班组安全活动编辑 linkToUrl = '../apply/subPages/FO/4teamActivityEdit' break; case 'HM061_SHOWPRINT': //危险辨识任务签到 linkToUrl = '../apply/subPages/HM/1riskTaskShow' break; case 'HM062': //危险辨识任务编辑 linkToUrl = '../apply/subPages/HM/1riskTaskEdit' break; case 'HM064': //危险辨识记录编辑 linkToUrl = '../apply/subPages/HM/2riskRecordEdit' break; case 'HM063_SHOWPRINT': //危险辨识记录签到 linkToUrl = '../apply/subPages/HM/2riskRecordShow' break; case 'HM102': //职业危害辨识记录 linkToUrl = '../apply/subPages/HM/3hazardTaskEdit' break; case 'HM101_SHOWPRINT': //职业危害辨识记录签到 linkToUrl = '../apply/subPages/HM/3hazardTaskShow' break; case 'HM100': //职业危害辨识记录签到 linkToUrl = '../apply/subPages/HM/3hazardRecordEdit' break; case 'HM099_SHOWPRINT': //职业危害辨识记录签到 linkToUrl = '../apply/subPages/HM/3hazardRecordShow' break; case 'HM122': //风险评价 linkToUrl = '../apply/subPages/HM/6evaluateEdit' break; case 'SE009_SHOWPRINT': //部门培训计划签到 linkToUrl = '../apply/subPages/SE/3depTrainPlanShow' break; case 'SE011_SHOWPRINT': //年度培训计划签到 linkToUrl = '../apply/subPages/SE/4yearTrainPlanShow' break; case 'SE013_SHOWPRINT': //培训通知签到 linkToUrl = '../apply/subPages/SE/1trainNotifyShow' break; case 'SE014': //培训通知编辑 linkToUrl = '../apply/subPages/SE/1trainNotifyEdit' break; case 'SE018': //培训记录编辑 linkToUrl = '../apply/subPages/SE/2trainRecordEdit' break; case 'SE017_SHOWPRINT': //培训记录签到 linkToUrl = '../apply/subPages/SE/2trainRecordShow' break; case 'SE042': //三级安全教育 linkToUrl = '/pages/apply/subPages/SE/5threeLevelEducateEdit' break; // case 'SE062': //新三级安全教育 // linkToUrl = '/pages/apply/subPages/SE/5newThreeLevelEducateEdit' // break; case 'SE062_SHOWPRINT': //新三级安全教育签到 linkToUrl = '/pages/apply/subPages/SE/5newThreeLevelEducateShow' break; case 'SE015_SHOWPRINT': //三级安全教育 linkToUrl = '/pages/apply/subPages/SE/5threeLevelEducateShow' break; case 'SE018_PAPERPAGE': //培训答题页 linkToUrl = '/pages/apply/subPages/SE/7answerPageEdit' break; case 'WB008': //培训答题页 linkToUrl = '/pages/apply/subPages/SCWB/WB008' break; case 'WB008_PAPERPAGE': //培训答题页 linkToUrl = '/pages/apply/subPages/SCWB/1WBanswerPageEdit' break; case 'WB008_CONFIRMPAGE': //培训答题页 case 'SE050_SHOWPRINT': //培训答题页 linkToUrl = '/pages/apply/subPages/SCWB/2WBanswerPageShow' break; case 'WB008_OPERATE': //培训答题页 linkToUrl = '/pages/apply/subPages/SCWB/wb008_OPERATENEW' break; case 'WB048': //外包单位安全培训记录结果确认 linkToUrl = '/pages/apply/subPages/SCWB/wb048' break; case 'WB013': //外包作业许可申请 linkToUrl = '/pages/apply/subPages/SCWB/dangerApply' break; case 'WB013_SHOWPRINT': //外包工程危险作业审批表 linkToUrl = '/pages/apply/subPages/SCWB/WB013_SHOWPRINT' break; case 'WB019': //现场安全技术交底 linkToUrl = '/pages/apply/subPages/SCWB/WB019' break; case 'WB019_SHOWPRINT': //外包工程危险作业交底 linkToUrl = '/pages/apply/subPages/SCWB/WB019_SHOWPRINT' break; case 'WB021': //外包工程危险作业监查人 linkToUrl = '/pages/apply/subPages/SCWB/WB021' break; case 'WB021_SHOWPRINT': //外包工程危险作业-监察人确认 linkToUrl = '/pages/apply/subPages/SCWB/WB021_SHOWPRINT' break; case 'WB023': //外包工程危险作业记录 linkToUrl = '/pages/apply/subPages/SCWB/WB023' break; case 'WB023_SHOWPRINT': //外包工程危险作业记录-审阅 linkToUrl = '/pages/apply/subPages/SCWB/WB023_SHOWPRINT' break; case 'WB025': //外包工程危险作业监查记录 linkToUrl = '/pages/apply/subPages/SCWB/WB025' break; case 'WB025_SHOWPRINT': //外包工程危险作业监查记录-审阅 linkToUrl = '/pages/apply/subPages/SCWB/WB025_SHOWPRINT' break; case 'WB027': //外包工程危险作业监查记录 linkToUrl = '/pages/apply/subPages/SCWB/WB027' break; case 'WB027_SHOWPRINT': //外包工程危险作业监查记录-审阅 linkToUrl = '/pages/apply/subPages/SCWB/WB027_SHOWPRINT' break; case 'WB029': //外包工程安全检查任务表- linkToUrl = '/pages/apply/subPages/SCWB/WB029' break; case 'WB029_SHOWPRINT': //外包工程安全检查任务表-确认 linkToUrl = '/pages/apply/subPages/SCWB/WB029_SHOWPRINT' break; case 'WB031': //外包工程安全检查记录 linkToUrl = '/pages/apply/subPages/SCWB/WB031' break; case 'WB031_SHOWPRINT': //外包工程安全检查记录表-确认 linkToUrl = '/pages/apply/subPages/SCWB/WB031_SHOWPRINT' break; case 'WB037': //外包工程安全检查记录 linkToUrl = '/pages/apply/subPages/SCWB/WB037' break; case 'WB039': //外包工程安全检查记录 linkToUrl = '/pages/apply/subPages/SCWB/WB039' break; case 'WB006': //外包工程安全检查记录 linkToUrl = '/pages/apply/subPages/SCWB/WB006' break; case 'SESafeSurveyTest': //安全意识培训答题页 linkToUrl = '/pages/apply/subPages/SE/8answerPageEdit' break; case 'SE022': //三级安全教育 linkToUrl = '/pages/apply/subPages/SE/6trainReportEdit' break; case 'SE007_INPUTPAGE': //培训需求填报 linkToUrl = '/pages/apply/subPages/SE/9trainDemandEdit' break; case 'SE061_PAPERPAGE': //培训答题页 linkToUrl = '/pages/apply/subPages/SE/10threeLevelAnswerPageEdit' break; case 'OG012': //员工意见上报 linkToUrl = '/pages/apply/subPages/OG/opinion012' break; case 'OG011_SHOWPRINT': //员工意见上报 linkToUrl = '/pages/apply/subPages/OG/opinion012Show' break; case 'OG016': //内部联系 linkToUrl = '/pages/apply/subPages/OG/contact016' break; case 'OG015_SHOWPRINT': //内部联系 linkToUrl = '/pages/apply/subPages/OG/contact016Show' break; case 'OG016_EDIT': //内部联系 linkToUrl = '/pages/apply/subPages/OG/contact016Do' break; case 'OG030': //工余事件征集 linkToUrl = '/pages/apply/subPages/OG/1EventGetEdit' break; case 'OG030_EDIT': //工余事件征集 linkToUrl = '/pages/apply/subPages/OG/1EventGetUserEdit' break; case 'OG030_REPLY': //工余事件征集 linkToUrl = '/pages/apply/subPages/OG/1EventGetUserEdit' break; case 'OG030_SHOWPRINT': //工余事件征集 linkToUrl = '/pages/apply/subPages/OG/1EventGetShow' break; case 'OG001_SHOWPRINT': //工余事件征集 linkToUrl = '/pages/apply/subPages/OG/3SignShow' break; case 'OG060': //员工意见 linkToUrl = '/pages/apply/subPages/OG/2EmployeeOpinionEdit' break; case 'OG059_EDIT': //员工意见 linkToUrl = '/pages/apply/subPages/OG/2EmployeeOpinionReplyEdit' break; case 'OG059_REPORT': //员工意见 linkToUrl = '/pages/apply/subPages/OG/2EmployeeOpinionReportEdit' break; case 'OG059_CHECK': //员工意见负责人审核 linkToUrl = '/pages/apply/subPages/OG/2EmployeeOpinionReportEdit' break; case 'LR002': //法律法规 linkToUrl = '/pages/apply/subPages/LR/2LawDistinguishEdit' break; case 'FO015': //一般作业活动记录编辑 linkToUrl = '../apply/subPages/FO2/jobEventEdit1' break; case 'FO015_SHOWPRINT': //一般作业活动记录签到 linkToUrl = '../apply/subPages/FO2/jobEventShow' break; case 'FO017': //关键许可工作票编辑 linkToUrl = '../apply/subPages/FO2/jobEdit' break; case 'FO017_SHOWPRINT': //关键许可工作票签到 linkToUrl = '../apply/subPages/FO2/jobShow' break; case 'FO017_JD': //关键许可工作票编辑 linkToUrl = '../apply/subPages/FO2/jobEditJD' break; case 'FO017_SHOWPRINTJD': //关键许可工作票签到 linkToUrl = '../apply/subPages/FO2/jobShowJD' break; case 'FO025': //关键许可工作票外包编辑 linkToUrl = '../apply/subPages/FO2/jobOutsourceEdit' break; case 'FO019': //技术交底表编辑 linkToUrl = '../apply/subPages/FO2/techEdit' break; case 'FO019_SHOWPRINT': //技术交底表签到 linkToUrl = '../apply/subPages/FO2/techShow' break; case 'FO008_SHOWPRINT': //作业方案讨论记录签到 linkToUrl = '../apply/subPages/FO2/preOperSchShow' break; case 'FO021': //关键作业活动记录编辑 linkToUrl = '../apply/subPages/FO2/jobActivityEdit' break; case 'FO021_SHOWPRINT': //关键作业活动记录签到 linkToUrl = '../apply/subPages/FO2/jobActivityShow' break; case 'FO022_SHOWPRINT': //关键作业活动记录签到 linkToUrl = '../apply/subPages/FO2/jobActivityFinish' break; case 'HM105': //作业任务识别编辑 linkToUrl = '../apply/subPages/HM2/jobTaskIdentityEdit' break; case 'HM104_SHOWPRINT': //作业任务识别签到 linkToUrl = '../apply/subPages/HM2/jobTaskIdentityShow' break; case 'HM088': //作业任务分析编辑 linkToUrl = '../apply/subPages/HM2/jobTaskAnalyzeEdit' break; case 'HM113': //作业任务分析编辑 linkToUrl = '../apply/subPages/HM2/jobTaskAnalyzeEdit' break; case 'HM087_SHOWPRINT': //作业任务分析签到 linkToUrl = '../apply/subPages/HM2/jobTaskAnalyzeShow' break; case 'HM108': //许可作业编辑 linkToUrl = '../apply/subPages/HM2/jobTaskLicenseEdit' break; case 'HM119': //许可作业编辑 linkToUrl = '../apply/subPages/HM2/jobTaskLicenseEdit' break; case 'HM107_SHOWPRINT': //许可作业确认 linkToUrl = '../apply/subPages/HM2/jobTaskLicenseShow' break; case 'HM109': //关键作业编辑 linkToUrl = '../apply/subPages/HM2/jobTaskCrucialEdit' break; case 'HM115': //关键作业编辑 linkToUrl = '../apply/subPages/HM2/jobTaskCrucialEdit' break; case 'HM109_SHOWPRINT': //关键作业确认 linkToUrl = '../apply/subPages/HM2/jobTaskCrucialShow' break; case 'HM112': //一般作业编辑 linkToUrl = '../apply/subPages/HM2/jobTaskOrdinaryEdit' break; case 'HM117': //一般作业编辑 linkToUrl = '../apply/subPages/HM2/jobTaskOrdinaryEdit' break; case 'HM111_SHOWPRINT': //一般作业确认 linkToUrl = '../apply/subPages/HM2/jobTaskOrdinaryShow' break; case 'FM202_SHOWPRINT': // 随手拍确认 linkToUrl = '../apply/subPages/FM/snapshotConfirm' break; //会议模块 case 'SC028': // 会议通知 安委会 case 'SC032': // 会议通知 普通 linkToUrl = '../apply/subPages/SCMT/meeting' break; case 'SC028_SHOWPRINT': // 会议通知 安委会 // case 'SC032_SHOWPRINT': // 会议通知 普通 linkToUrl = '../apply/subPages/SCMT/meetingNotice' break; case 'SC030': // 会议纪要 linkToUrl = '../apply/subPages/SCMT/meetingMinutes' break; case 'SC030_SHOWPRINT': // 会议纪要签到 linkToUrl = '../apply/subPages/SCMT/meetingMinutesCheck' break; case 'SC030_1': // 会议纪要 linkToUrl = '../apply/subPages/SCMT/meetingMinutes_1' break; case 'SC030_2': // 会议纪要 linkToUrl = '../apply/subPages/SCMT/meetingMinutes_2' break; case 'SC034': // 普通会议纪要(会议内容 题目 意见 ) linkToUrl = '../apply/subPages/SCMT/meetingMinutes' break; case 'HM124': //文件发布表 linkToUrl = '../apply/subPages/HM2/filePublishEdit' break; case 'HM123_SHOWPRINT': //文件发布表 linkToUrl = '../apply/subPages/HM2/filePublishShow' break; case 'PT014_SHOWPRINT': //安全生产方针征集表 linkToUrl = '../apply/subPages/SCPT/policyCollectShow' break; case 'PT020': //安全生产目标与指标 linkToUrl = '../apply/subPages/SCPT/formulationDepartmentEdit' break; case 'PT020_SHOWPRINT': //安全生产目标与指标 linkToUrl = '../apply/subPages/SCPT/formulationDepartmentShow' break; case 'PT024': //考核方案审核 linkToUrl = '../apply/subPages/SCPT/PlanAuditEdit' break; case 'PT024_SHOWPRINT': //考核方案审核 linkToUrl = '../apply/subPages/SCPT/PlanAuditShow' break; case 'SK006': //安全检查通知 linkToUrl = '../apply/subPages/SK/safeCheckEditNew' break; // case 'SK006': //安全检查通知新版 // linkToUrl = '../apply/subPages/SK/safeCheckEditNew' // break; case 'SK006_SHOWPRINT': //安全检查通知 linkToUrl = '../apply/subPages/SK/safeCheckShow' break; // case 'SK010': //安全检查记录新版 // linkToUrl = '../apply/subPages/SK/safeCheckRecordEditNew' // break; case 'SK010': //安全检查记录 linkToUrl = '../apply/subPages/SK/safeCheckRecordEditNew' break; case 'SK010_SHOWPRINT': //安全检查记录 linkToUrl = '../apply/subPages/SK/safeCheckRecordShow' break; case 'SK012': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/safeCheckRecordSummaryEditNew' break; case 'SK012_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/safeCheckRecordSummaryShow' break; case 'SK014': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskReportEditNew' break; case 'SK014_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskReportShow' break; case 'SK016': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskHandelEditNew' break; case 'SK016_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskHandelShow' break; case 'SK018': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskVerifyEditNew' break; case 'SK018_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskVerifyShow' break; case 'SK020': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskRectifyEditNew' break; case 'SK020_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskRectifyShow' break; case 'SK022': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskRectifyRecordEditNew' break; case 'SK022_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskRectifyRecordShow' break; case 'SK024': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskRectifyDeferredEditNew' break; case 'SK024_SHOWPRINT': //安全检查记录汇总表 linkToUrl = '../apply/subPages/SK/riskRectifyDeferredShow' break; case 'SK031': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeRecEdit' break; case 'SK031_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeRecShow' break; case 'SK033': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeIdenEdit' break; case 'SK033_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeIdenShow' break; case 'SK035': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeIdenResEdit' break; case 'SK035_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeIdenResShow' break; case 'SK037_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeIdenSumShow' break; case 'SK039': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeEvaluateEditNew' break; case 'SK039_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeEvaluateShow' break; case 'SK041_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskSafeEvaSumShow' break; case 'SK026': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskDouPreEditNew' break; case 'SK026_SHOWPRINT': //安全风险辨识与评估计划表 linkToUrl = '../apply/subPages/SK/riskDouPreShow' break; case 'PT029': //监测与考核记录 linkToUrl = '../apply/subPages/SCPT/monitorAssessmentEdit' break; case 'PT029_SHOWPRINT': //监测与考核记录 linkToUrl = '../apply/subPages/SCPT/monitorAssessmentShow' break; case 'PR024': //变化识别评估表 linkToUrl = '../apply/subPages/SCPT/changeIdentifyEdit2' break; case 'PR026': //变化识别落实表 linkToUrl = '../apply/subPages/SCPT/changeImplementEdit' break; case 'PR028': //变化识别验收表 linkToUrl = '../apply/subPages/SCPT/changeAcceptanceEdit' break; case 'PT015': //安全生产方针调查表 linkToUrl = '../apply/subPages/SCPT/policyInvestigationEdit' break; case 'PR072': //生产工艺运行记录表单 linkToUrl = '../apply/subPages/SCPR/processFormxkEdit' break; case 'PR072_SHOWPRINT': //生产工艺运行记录表单 linkToUrl = '../apply/subPages/SCPR/processFormxkShow' break; case 'TL037': //日常观测汇总 linkToUrl = '../apply/subPages/TL/watchDaily' break; case 'TL037_SHOWPRINT': //日常观测汇总 linkToUrl = '../apply/subPages/TL/watchDailyShow' break; case 'CM045': linkToUrl = '../apply/subPages/SCCM/Inventory' break; case 'CM045_SHOWPRINT': linkToUrl = '../apply/subPages/SCCM/operateRecord' break; case 'DM034': linkToUrl = '../apply/subPages/DM/DM034' break; case 'DM034_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM034_SHOWPRINT' break; case 'DM014': linkToUrl = '../apply/subPages/DM/DM014' break; case 'DM014_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM014_SHOWPRINT' break; case 'DM016': linkToUrl = '../apply/subPages/DM/DM016' break; case 'DM016_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM016_SHOWPRINT' break; case 'DM010': linkToUrl = '../apply/subPages/DM/DM010' break; case 'DM010_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM010_SHOWPRINT' break; case 'DM032': linkToUrl = '../apply/subPages/DM/DM032' break; case 'DM032_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM032_SHOWPRINT' break; case 'DM008': linkToUrl = '../apply/subPages/DM/DM008' break; case 'DM008_SHOWPRINT': case 'DM008_SHOWSUMMARY': linkToUrl = '../apply/subPages/DM/DM008_SHOWPRINT' break; case 'DM020': linkToUrl = '../apply/subPages/DM/DM020' break; case 'DM019_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM020_SHOWPRINT' break; case 'DM030': linkToUrl = '../apply/subPages/DM/DM030' break; case 'DM030_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM030_SHOWPRINT' break; case 'DM022': linkToUrl = '../apply/subPages/DM/DM022' break; case 'DM021_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM022_SHOWPRINT' break; case 'DM012': linkToUrl = '../apply/subPages/DM/DM012' break; case 'DM012_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM012_SHOWPRINT' break; case 'DM045': linkToUrl = '../apply/subPages/DM/DM045' break; case 'DM045_SHOWPRINT': linkToUrl = '../apply/subPages/DM/DM045_SHOWPRINT' break; } return linkToUrl }