From 3cbe20c89e11b952c93e5e93ccbf06f3b5614c8a Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期三, 10 七月 2024 11:20:48 +0800 Subject: [PATCH] 新增计算功能 --- static/js/worker.js | 121 +++++++++++++++++++++++++++++++++------- 1 files changed, 99 insertions(+), 22 deletions(-) diff --git a/static/js/worker.js b/static/js/worker.js index df98533..146cb61 100644 --- a/static/js/worker.js +++ b/static/js/worker.js @@ -74,6 +74,7 @@ if(res==''||res==null||res==undefined||res=='Infinity'){ item.v.v = '' }else{ + console.log(ask,res,item.v.f) if(ask){ comp = ask.map((m, i) => { if (m.includes('RTS')) { @@ -82,38 +83,77 @@ if (m.includes('=')) { let str = handleFraction(m.split('=')[1]) if(typeof res == 'string'&&typeof str == 'string'){ - return res.trim() == str.trim() + if(item.v.f&&typeof(item.v.f)=='string'&&item.v.f.includes('&"/"&')){ + return handleMoreParam(res,m.split('=')[1],'=') + }else{ + return res.trim() == str.trim() + } }else{ return eval(res) == eval(str) } } else if (m.includes('鈮�')) { - let str = handleFraction(m.split('鈮�')[1]) - return eval(res) >= eval(str) + if(item.v.f&&typeof(item.v.f)=='string'&&item.v.f.includes('&"/"&')){ + return handleMoreParam(res,m.split('鈮�')[1],'鈮�') + }else{ + let str = handleFraction(m.split('鈮�')[1]) + return eval(res) >= eval(str) + } }else if (m.includes('鈮�')) { - let str = handleFraction(m.split('鈮�')[1]) - console.log(eval(res),eval(str)) - return eval(res) <= eval(str) + if(item.v.f&&typeof(item.v.f)=='string'&&item.v.f.includes('&"/"&')){ + return handleMoreParam(res,m.split('鈮�')[1],'鈮�') + }else{ + let str = handleFraction(m.split('鈮�')[1]) + return eval(res) <= eval(str) + } }else if (m.includes('<')) { - let str = handleFraction(m.split('<')[1]) - return eval(res) < eval(str) + if(item.v.f&&typeof(item.v.f)=='string'&&item.v.f.includes('&"/"&')){ + return handleMoreParam(res,m.split('<')[1],'<') + }else{ + let str = handleFraction(m.split('<')[1]) + return eval(res) < eval(str) + } }else if (m.includes('>')) { - let str = handleFraction(m.split('>')[1]) - return eval(res) > eval(str) + if(item.v.f&&typeof(item.v.f)=='string'&&item.v.f.includes('&"/"&')){ + return handleMoreParam(res,m.split('>')[1],'>') + }else{ + let str = handleFraction(m.split('>')[1]) + return eval(res) > eval(str) + } }else if (m.includes('~')) { - let k = m.split('~') - return eval(res) >= eval(handleFraction((k[0]))) && eval(res) <= eval(handleFraction(k[1])) + if(item.v.f&&typeof(item.v.f)=='string'&&item.v.f.includes('&"/"&')){ + return handleMoreParam(res,m,'~') + }else{ + let k = m.split('~') + return eval(res) >= eval(handleFraction((k[0]))) && eval(res) <= eval(handleFraction(k[1])) + } }else if(m.includes('-')){ - let k = m.split('-') - return eval(res) >= eval(handleFraction(k[0])) && eval(res) <= eval(handleFraction(k[1])) + if(res.includes('/')){ + return handleMoreParam(res,m,'-') + }else{ + let k = m.split('-') + return eval(res) >= eval(handleFraction(k[0])) && eval(res) <= eval(handleFraction(k[1])) + } }else if(m.includes('卤')){ - let k = m.split('卤') - return eval(res) >= eval((handleFraction(k[0]) - handleFraction(k[1]))) && eval(res) <= eval((handleFraction(k[0]) + handleFraction(k[1]))) + if(item.v.f&&typeof(item.v.f)=='string'&&item.v.f.includes('&"/"&')){ + return handleMoreParam(res,m,'卤') + }else{ + let k = m.split('卤') + return eval(res) >= eval((handleFraction(k[0]) - handleFraction(k[1]))) && eval(res) <= eval((handleFraction(k[0]) + handleFraction(k[1]))) + } }else if(m.includes('锛�')){ - let str = handleFraction(m.split('锛�')[1]) - return eval(res) > eval(str) + if(item.v.f&&typeof(item.v.f)=='string'&&item.v.f.includes('&"/"&')){ + return handleMoreParam(res,m.split('锛�')[1],'>') + }else{ + let str = handleFraction(m.split('锛�')[1]) + return eval(res) > eval(str) + } }else if(m.includes('锛�')){ - let str = handleFraction(m.split('锛�')[1]) - return eval(res) < eval(str) + if(item.v.f&&typeof(item.v.f)=='string'&&item.v.f.includes('&"/"&')){ + return handleMoreParam(res,m.split('锛�')[1],'<') + }else{ + let str = handleFraction(m.split('锛�')[1]) + return eval(res) < eval(str) + } } }) } @@ -158,7 +198,6 @@ } else { let comResult = '' - console.log('item.v.f',item.v.f) try { if(getInspectionValueType(item.i)==1){ let ask = currentSample.insProduct.find(m => m.id == item.i).ask?currentSample.insProduct.find(m => m.id == item.i).ask.split('&'):null; @@ -238,7 +277,12 @@ } } } - +/** + * 澶勭悊鍒嗘暟鎴栧甫鏈変箻娉曞拰涔樻柟鐨勫瓧绗︿覆 + * + * @param str 瀛楃涓茬被鍨嬶紝琛ㄧず瑕佸鐞嗙殑鍒嗘暟鎴栦箻鏂硅〃杈惧紡 + * @returns 杩斿洖涓�涓暟瀛楁垨鍘熷瓧绗︿覆锛屽鏋滃瓧绗︿覆涓烘湁鏁堢殑鍒嗘暟鎴栦箻鏂硅〃杈惧紡锛屽垯杩斿洖璁$畻缁撴灉锛涘惁鍒欒繑鍥炲師瀛楃涓� + */ function handleFraction(str){ if(str&&typeof(str)=='string'&&str.includes('/')){ return eval(str.split('/')[0]/str.split('/')[1]) @@ -254,6 +298,39 @@ } } +function handleMoreParam(res,str,comp){ + let arr = res.split('/') + let arr0 = arr.every(item=>{ + console.log(comp) + switch (comp){ + case '>': + return item > handleFraction(str) + case '<': + return item < handleFraction(str) + case '=': + return item == handleFraction(str) + case '鈮�': + return item >= handleFraction(str) + case '鈮�': + return item <= handleFraction(str) + case '卤': + let k = str.split('卤') + return item >= eval((handleFraction(k[0]) - handleFraction(k[1]))) && item <= eval((handleFraction(k[0]) + handleFraction(k[1]))) + case '~': + let j = str.split('~') + return item >= eval(handleFraction((j[0]))) && item <= eval(handleFraction(j[1])) + case '-': + let o = str.split('-') + return item >= eval(handleFraction(o[0])) && item <= eval(handleFraction(o[1])) + } + }) + if(arr0){ + return true + }else{ + return false + } +} + function getParam(){ for (var b in param){ param[b].insValue = [] -- Gitblit v1.9.3