luojie 2 months ago
parent
commit
7d705e7adf
2 changed files with 118 additions and 3 deletions
  1. +47
    -0
      src/utils/calUnitTools.js
  2. +71
    -3
      src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/ZQDYJMD.vue

+ 47
- 0
src/utils/calUnitTools.js View File

@ -27,6 +27,32 @@ export function addTj(valueArr, unitArr) {
} }
} }
//体积不同单位相减
export function subTj(valueArr, unitArr) {
let unit = ['pL', 'nL', 'uL', 'mL', 'L']
//计算最小单位
let mixIndex = unit.length - 1
for (let i = 0; i < unitArr.length; i++) {
let thisIndex = unit.indexOf(unitArr[i])
mixIndex = thisIndex < mixIndex ? thisIndex : mixIndex
}
let total = multiplyDecimals(
parseFloat(valueArr[0]),
Math.pow(1000, unit.indexOf(unitArr[0]) - mixIndex)
)
let sub = multiplyDecimals(
parseFloat(valueArr[1]),
Math.pow(1000, unit.indexOf(unitArr[1]) - mixIndex)
)
return {
total: subDecimals(total, sub),
unit: unit[mixIndex]
}
}
export function addDecimals(a, b) { export function addDecimals(a, b) {
if (Number.isNaN(a)) { if (Number.isNaN(a)) {
a = 0 a = 0
@ -48,6 +74,27 @@ export function addDecimals(a, b) {
return result.replace(/(\.\d*?)0+$/, '$1').replace(/\.$/, '') return result.replace(/(\.\d*?)0+$/, '$1').replace(/\.$/, '')
} }
export function subDecimals(a, b) {
if (Number.isNaN(a)) {
a = 0
}
if (Number.isNaN(b)) {
b = 0
}
const strA = a.toString()
const strB = b.toString()
// 获取小数位数
const getDecimals = (str) => (str.split('.')[1] || '').length
const maxLen = Math.max(getDecimals(strA), getDecimals(strB))
// 相加并格式化为字符串
const result = (parseFloat(a) - parseFloat(b)).toFixed(maxLen)
// 去掉末尾的0
return result.replace(/(\.\d*?)0+$/, '$1').replace(/\.$/, '')
}
export function multiplyDecimals(a, b) { export function multiplyDecimals(a, b) {
if (Number.isNaN(a) || Number.isNaN(b)) { if (Number.isNaN(a) || Number.isNaN(b)) {
return 0 return 0

+ 71
- 3
src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/ZQDYJMD.vue View File

@ -71,7 +71,7 @@ import TableOpertaion from "@/components/Template/operation/TableOpertaion.vue"
import SelectReagentDialog from '../../../dialog/SelectReagentDialog.vue'; import SelectReagentDialog from '../../../dialog/SelectReagentDialog.vue';
import { EventBus } from "@/utils/eventBus"; import { EventBus } from "@/utils/eventBus";
import { sj_subpackage,sj_startConfiguration,sj_configurationCompleted } from '@/api/business/sj/sj'; import { sj_subpackage,sj_startConfiguration,sj_configurationCompleted } from '@/api/business/sj/sj';
import { addTj,uniqeResource } from "@/utils/calUnitTools";
import { addTj,uniqeResource,uniqeResourceOne,addDecimals } from "@/utils/calUnitTools";
export default { export default {
name: "ZQDYJMD", name: "ZQDYJMD",
@ -334,6 +334,70 @@ export default {
// //
let item = tableList[i] let item = tableList[i]
//使
tmpResource.push({
mc: null,
bh: item.sjry,
ph: null,
ndz: null,
nd: null,
nddw: null,
ly: 'ELN配制',
sxrq: null,
kc: null,
kcdw: null,
syl: item.sjryxql,
type: null,
elnType: this.product,
syldw:content.headerSelectFields.sjryxqlUnit,
yxzq:null,
yxzqdw:null,
})
tmpResource.push({
mc: null,
bh: content.subJz,
ph: null,
ndz: null,
nd: null,
nddw: null,
ly: 'ELN配制',
sxrq: null,
kc: null,
kcdw: null,
syl: item.sjjzxql,
type: null,
elnType: this.product,
syldw:content.headerSelectFields.sjjzxqlUnit,
yxzq:null,
yxzqdw:null,
})
//
let fzTotal = 0//
if(item.fzsj && item.fzsj.fzList && item.fzsj.fzList.length>0){
for(let j=0;j<item.fzsj.fzList.length;j++){
let fzItem = item.fzsj.fzList[j]
tmpResource.push({
mc: null,
bh: item.fzsj.mybh+fzItem.subCode,
ph: null,
ndz: item.hhwznd + content.headerSelectFields.hhwzndUnit,
nd: item.hhwznd,
nddw: content.headerSelectFields.hhwzndUnit,
ly: 'ELN配制',
sxrq: null,
kc: fzItem.num,
kcdw: item.fzsj.dw,
syl: null,
type: null,
elnType: this.product,
syldw:item.fzsj.dw,
yxzq:null,
yxzqdw:null,
})
fzTotal=addDecimals(fzTotal,fzItem.num)
}
}
//
const { total, unit } = addTj([item.sjjzxql, item.sjryxql], [content.headerSelectFields.sjjzxqlUnit, content.headerSelectFields.sjryxqlUnit]) const { total, unit } = addTj([item.sjjzxql, item.sjryxql], [content.headerSelectFields.sjjzxqlUnit, content.headerSelectFields.sjryxqlUnit])
tmpResource.push({ tmpResource.push({
@ -347,16 +411,20 @@ export default {
sxrq: null, sxrq: null,
kc: total, kc: total,
kcdw: unit, kcdw: unit,
syl: null,
syl: fzTotal>0?fzTotal:null,
type: null, type: null,
elnType: this.product, elnType: this.product,
syldw:unit,
syldw:fzTotal>0?item.fzsj.dw:unit,
yxzq:null, yxzq:null,
yxzqdw:null, yxzqdw:null,
}) })
} }
} }
} }
debugger
if(tmpResource.length>0){
tmpResource = uniqeResourceOne(tmpResource)
}
//使 //使
const stepResource = this.$refs.stepRef.getStepResource() const stepResource = this.$refs.stepRef.getStepResource()
this.resourceTmp =uniqeResource(tmpResource,stepResource.sjResource||[]) this.resourceTmp =uniqeResource(tmpResource,stepResource.sjResource||[])

Loading…
Cancel
Save