diff --git a/components/n-scanTemp/n-scanTemp.vue b/components/n-scanTemp/n-scanTemp.vue
index 1514935..77d2665 100644
--- a/components/n-scanTemp/n-scanTemp.vue
+++ b/components/n-scanTemp/n-scanTemp.vue
@@ -7,7 +7,7 @@
{{ title }}
-
+
request({
- url: '/lims/bus/deviceBusMaintain/getMaintainDetail',
+ url: '/qms/resource/device-maintain/getMaintainDetail',
method: 'GET',
params: { id }
}),
list: params =>
request({
- url: '/lims/bus/deviceBusMaintain/list',
+ url: '/qms/resource/device-maintain/page',
method: 'GET',
params
}),
// 根据设备id或者维护和点检记录
getCheckRecord: data =>
request({
- url: '/lims/bus/deviceBusMaintain/createOrGet',
+ url: '/qms/resource/device-maintain/createOrGet',
method: 'POST',
data
}),
submit: data =>
request({
- url: '/lims/bus/deviceBusMaintain/saveMaintainVo',
+ url: '/qms/resource/device-maintain/saveMaintainVo',
method: 'POST',
data,
custom: {
@@ -30,13 +30,13 @@ export default {
}),
getLastDailyCheckOfToday: params =>
request({
- url: '/lims/bus/deviceBusMaintain/getLastDailyCheckOfToday',
+ url: '/qms/resource/device-maintain/getLastDailyCheckOfToday',
method: 'GET',
params,
}),
createDailyCheck: data =>
request({
- url: '/lims/bus/deviceBusMaintain/create',
+ url: '/qms/resource/device-maintain/create',
method: 'POST',
data
})
diff --git a/nx/helper/calcAnalysisValue.js b/nx/helper/calcAnalysisValue.js
index b2900df..a236161 100644
--- a/nx/helper/calcAnalysisValue.js
+++ b/nx/helper/calcAnalysisValue.js
@@ -64,11 +64,8 @@ const Get_C_KNO3 = function (weight, sValue, operator) {
//判断sValue是数字
const S = number(sValue)
const W = number(weight)
- console.log(S, W)
-
//如果样重为0就不计算
if (W === 0) {
- console.log('结束')
return ''
}
if (W === 0) return ''
@@ -130,7 +127,7 @@ export function calcAnalysisValue(group, externalFormData, taskIngredientsWay) {
v = math.evaluate(formulaVal).toString()
v = isFinite(v) ? v.toString() : 0
}
- ele.value = handleRoundFiveNumber(v, ele.decimalPosition)
+ ele.value = handleRoundFiveNumber(v, ele.decimalPosition, ele.type === 'project')
changed = true
}
}
@@ -152,13 +149,11 @@ export function evaluateGetFromFormula(formula, parse, externalFormData, current
relFormulaVal = relFormulaVal.replace(key, value || 0)
}
}
- console.log(relFormulaVal)
-
try {
let v = math.evaluate(relFormulaVal).toString()
v = isFinite(v) ? v : 0
if (parse) {
- return handleRoundFiveNumber(v, currentColumn.decimalPosition)
+ return handleRoundFiveNumber(v, currentColumn.decimalPosition, currentColumn.type === 'project')
}
return v
} catch (e) {
@@ -212,7 +207,8 @@ export function calcRowAnalysisValue(row, columnObj, dynamicsColumns, externalFo
v = math.evaluate(formulaVal).toString()
v = isFinite(v) ? v : 0
}
- row[curItem.fieldIndex].value = handleRoundFiveNumber(Number(v), row[curItem.fieldIndex].decimalPosition)
+ let rowObj = row[curItem.fieldIndex]
+ rowObj.value = handleRoundFiveNumber(Number(v), rowObj.decimalPosition, rowObj.type === 'project')
calcRowAnalysisValue(row, curItem, dynamicsColumns, externalFormData)
}
}
@@ -235,24 +231,56 @@ const findFieldInGroup = function (paramNo, group, p) {
* 3.四舍,六入
* 传入数值和保留位数
*/
-export function handleRoundFiveNumber(number, fixed = 0) {
+export function handleRoundFiveNumber(number, fixed = 0, useTwoSignificantDigits = false) {
if (number == null || number === '' || isNaN(number)) return number
if (fixed === -1) return number
number = String(number)
//可以考虑清掉末尾的0,暂时限制了不会有,因为传入数值,末尾0是去掉的
+ // 保留2位有效数字:小数点后面大于0的才叫有效数字,从小数点后面查找两位有效数字 ,如果末尾的有效数字的位数大于所设置的精度 以及 如果查找的有效数字没有两位的 ,就按照所设置的精度逻辑来计算,两位有效数字的最后 一位是在第几位,就用这个位数充当精度来按照原来精度的逻辑计算,
+ // ===== 新增:按小数点后前两个非零数字确定精度 =====
+ let actualFixed = fixed
+ if (useTwoSignificantDigits) {
+ const numStr = String(number)
+ const dotIndex = numStr.indexOf('.')
+
+ if (dotIndex !== -1) {
+ const decimalPart = numStr.slice(dotIndex + 1)
+ let nonZeroCount = 0
+ let secondNonZeroPos = -1
+
+ for (let i = 0; i < decimalPart.length; i++) {
+ if (decimalPart[i] !== '0') {
+ nonZeroCount++
+ if (nonZeroCount === 2) {
+ secondNonZeroPos = i + 1 // 小数点后第几位(从1开始)
+ break
+ }
+ }
+ }
+
+ // 只有同时满足:
+ // 1. 找到两个非零数字
+ // 2. 第二个的位置 <= 用户指定的 fixed
+ // 才使用该位置作为精度
+ if (secondNonZeroPos !== -1 && secondNonZeroPos <= fixed) {
+ actualFixed = secondNonZeroPos
+ }
+ }
+ }
+ console.log(actualFixed)
const index = number.indexOf('.')
if (index == -1) {
- if (fixed > 0) {
+ if (actualFixed > 0) {
number += '.'
}
- for (let i = 0; i < fixed; i++) {
+ for (let i = 0; i < actualFixed; i++) {
number += '0'
}
//补0返回
return number
}
//取到保留小数位的下一位,5.5555取保留俩位,那就是小数点后第三位
- const indexFixed = index + fixed + 1
+ const indexFixed = index + actualFixed + 1
if (indexFixed >= number.length) {
//如果小数位数不够, 补0直接返回
const zerolen = indexFixed - number.length
@@ -265,16 +293,16 @@ export function handleRoundFiveNumber(number, fixed = 0) {
const endNumber = number.substr(indexFixed, 1)
if (endNumber != '5') {
//如果做判断的数不是五,就按正常的四舍五入,即忽略了5,后面补0的那些由于是数字传进来,0已经去掉,此处不做处理
- return Number(number).toFixed(fixed)
+ return Number(number).toFixed(actualFixed)
}
if (indexFixed != number.length - 1) {
//由于当前判断位不是最后一位,而又去除了0,那么后面后的位数应该直接入位,五后不为0时入,由于会有小于五的,四舍五入肯定不行,那么只能截取到当前保留位数,然后转成数字加上10的负fixed的次方即可
number = number.substring(0, indexFixed)
if (number.indexOf('-') != -1) {
//需要考虑到负数的情况
- return (Number(number) - Number(Math.pow(10, -fixed))).toFixed(fixed)
+ return (Number(number) - Number(Math.pow(10, -actualFixed))).toFixed(actualFixed)
}
- return (Number(number) + Number(Math.pow(10, -fixed))).toFixed(fixed)
+ return (Number(number) + Number(Math.pow(10, -actualFixed))).toFixed(actualFixed)
//return this.accAdd(number,Math.pow(10,-fixed))
}
//接下来就时五后没有值也就是0的需要看前面的奇入偶不入了,取当前位的上一位
@@ -288,9 +316,9 @@ export function handleRoundFiveNumber(number, fixed = 0) {
number = number.substring(0, indexFixed)
if (number.indexOf('-') != -1) {
//需要考虑到负数的情况
- return (Number(number) - Math.pow(10, -fixed)).toFixed(fixed)
+ return (Number(number) - Math.pow(10, -actualFixed)).toFixed(actualFixed)
}
- return (Number(number) + Math.pow(10, -fixed)).toFixed(fixed)
+ return (Number(number) + Math.pow(10, -actualFixed)).toFixed(actualFixed)
}
//偶不进,将取值的当前位数,直接截取字符即可
return number.substr(0, indexFixed)
diff --git a/pages/analysis/sample/sample-work-detail.vue b/pages/analysis/sample/sample-work-detail.vue
index 79d82b1..f41d47f 100644
--- a/pages/analysis/sample/sample-work-detail.vue
+++ b/pages/analysis/sample/sample-work-detail.vue
@@ -674,7 +674,7 @@ const saveDetail = async () => {
if (item.calcMethod === 'calculateAverageValue') {
item.value = calcAverageValue(sourceKey, currentAssayType.value.tableData)
} else {
- item.value = handleRoundFiveNumber(row[sourceKey].value, row.decimalPosition)
+ item.value = handleRoundFiveNumber(row[sourceKey].value, row.decimalPosition, row.type === 'project')
}
// 如果处理后的值不为空,重新赋值该字段到其他样品类型下的样品上,并触发每一个样品的计算
for (const col of currentAssayType.value.columns) {
@@ -707,9 +707,10 @@ const saveDetail = async () => {
function calcAverageValue(fieldIndex, tableData) {
const rows = tableData.map(row => row[fieldIndex])
const decimalPosition = rows[0].decimalPosition
+ const isProject = rows[0].type === 'project'
const values = rows.map(row => Number(row.value))
if (values.some(item => item == null)) return null
- return handleRoundFiveNumber(math.mean(values), decimalPosition)
+ return handleRoundFiveNumber(math.mean(values), decimalPosition, isProject)
}
// 表格数据更新后重新计算
@@ -1109,12 +1110,13 @@ const listenNumKeyboard = () => {
}
//自动补全小数位数
const decimalPosition = selectedField.value.decimalPosition
+ const isProject = selectedField.value.type === 'project'
let val = res.val
const symbol = res.symbol
if (decimalPosition == null) {
selectedField.value.value = val
} else {
- selectedField.value.value = handleRoundFiveNumber(val, decimalPosition)
+ selectedField.value.value = handleRoundFiveNumber(val, decimalPosition, isProject)
}
if (symbol) {
selectedField.value.symbol = symbol
diff --git a/pages/device/deviceBusDailyCheck/index.vue b/pages/device/deviceBusDailyCheck/index.vue
index 308296b..722e7cc 100644
--- a/pages/device/deviceBusDailyCheck/index.vue
+++ b/pages/device/deviceBusDailyCheck/index.vue
@@ -1,14 +1,14 @@
-
+
@@ -16,18 +16,19 @@
getDailyCheckRecord(id)"
+ @scanResult="result => handleScanResult(result)"
/>
-
+
@@ -43,7 +44,7 @@
- 点检项目
+ 巡检项目
检查标准
频次
是否正常
@@ -75,10 +76,10 @@
附件照片:
- 点检人:
+ 巡检人:
- 点检日期:
+ 巡检日期:
@@ -129,32 +130,37 @@ const { lockOrientation } = useScreenOrientation()
const pageLoading = ref(false)
let detailInfo = ref({})
-
-const { scanQRInfo } = toRefs(nx.$store('biz'))
-watch(scanQRInfo, newVal => {
- if (newVal && nx.$router.getCurrentPage().route == 'pages/device/deviceBusDailyCheck/index') {
- try {
- const codeObj = JSON.parse(newVal)
- if (!pageLoading.value) {
- getDailyCheckRecord(codeObj.id)
- }
- scanQRInfo.value = ''
- } catch (error) {
- scanQRInfo.value = ''
- uni.showToast({
- title: '请扫描设备码',
- icon: 'none'
- })
- }
+function handleScanResult(result) {
+ const codeObj = JSON.parse(result)
+ if (!pageLoading.value) {
+ getDailyCheckRecord(codeObj.id)
}
-})
+}
+// const { scanQRInfo } = toRefs(nx.$store('biz'))
+// watch(scanQRInfo, newVal => {
+// if (newVal && nx.$router.getCurrentPage().route == 'pages/device/deviceBusDailyCheck/index') {
+// try {
+// const codeObj = JSON.parse(newVal)
+// if (!pageLoading.value) {
+// getDailyCheckRecord(codeObj.id)
+// }
+// scanQRInfo.value = ''
+// } catch (error) {
+// scanQRInfo.value = ''
+// uni.showToast({
+// title: '请扫描设备码',
+// icon: 'none'
+// })
+// }
+// }
+// })
const modalText = computed(() => {
return `确定${modalType.value == '0' ? '暂存' : '提交'}吗?${modalType.value == '0' ? '' : '提交后不能修改'} `
})
-onShow(() => {
- scanQRInfo.value = ''
-})
-let goBack = ref(false)
+// onShow(() => {
+// scanQRInfo.value = ''
+// })
+let goBack = ref(false) //设备使用前进行点检操作标记
onLoad(options => {
if (options.deviceId) {
goBack.value = true
@@ -211,7 +217,7 @@ function handleSubmit(type) {
}
if (!detailInfo.value.checkUserName) {
return uni.showToast({
- title: '请输入点检人',
+ title: '请输入巡检人',
icon: 'none'
})
}
@@ -246,11 +252,11 @@ function handleCheckRecord() {
nx.$store('biz').deviceInfo = deviceInfo
nx.$router.go('/pages/device/deviceBusDailyCheck/list')
}
-// 新建点检
+// 新建巡检
function handleCreateDailyCheck() {
uni.showModal({
title: '提示',
- content: '确定新建点检吗?',
+ content: '确定新建巡检吗?',
success: async function (res) {
if (res.confirm) {
const res = await dailyCheckApi.createDailyCheck({
diff --git a/pages/device/deviceBusUseRecord/index.vue b/pages/device/deviceBusUseRecord/index.vue
index cbccf52..8ea55d3 100644
--- a/pages/device/deviceBusUseRecord/index.vue
+++ b/pages/device/deviceBusUseRecord/index.vue
@@ -156,7 +156,7 @@ function getLastDailyCheckOfToday(id) {
})
}, 100)
pageLoading.value = false
- nx.$router.go('/pages/deviceBusDailyCheck/index', { deviceId: id })
+ nx.$router.go('/pages/device/deviceBusDailyCheck/index', { deviceId: id })
} else {
getDeviceInfo(id)
await getUseIngRecord(id)
diff --git a/pages/device/index/index.vue b/pages/device/index/index.vue
index e1e9759..1bf91dc 100644
--- a/pages/device/index/index.vue
+++ b/pages/device/index/index.vue
@@ -3,38 +3,37 @@
-
-
-
- {{ item.name }}
+
+
+
+ {{ item.name }}