|
@@ -270,9 +270,9 @@ class UoMService{
|
|
|
return this.convert(t, n, precision, r, minFactor)
|
|
|
}
|
|
|
|
|
|
- convert(number, domain, precision = 2, system, minFactor, ifEighths = !1) {
|
|
|
+ convert(number, domain, precision = 2, system, minFactor, ifEighths = !1, ifRestrictFactor) {
|
|
|
if (!number) return "";
|
|
|
- var s = this.getMostRelevantMeasurement(domain, system || this.UnitService.currentSystem, number, minFactor);
|
|
|
+ var s = this.getMostRelevantMeasurement(domain, system || this.UnitService.currentSystem, number, minFactor, ifRestrictFactor);
|
|
|
return this.getFormattedMeasurementString(s[0], s[1], precision, ifEighths)
|
|
|
}
|
|
|
|
|
@@ -322,7 +322,7 @@ class UoMService{
|
|
|
return 0 !== r ? r + "' " + s + a + '"' : "" + s + a + '"'
|
|
|
}
|
|
|
|
|
|
- getMostRelevantMeasurement(domain, system, number, minFactor=0) {
|
|
|
+ getMostRelevantMeasurement(domain, system, number, minFactor=0, ifRestrictFactor) {
|
|
|
/* var a = r.values(UnitsOfMeasurement.getUnitsOfMeasurementByDomainAndSystem(domain, system))
|
|
|
, s = r.filter(a, function(t) {
|
|
|
return t.factor >= i
|
|
@@ -334,9 +334,12 @@ class UoMService{
|
|
|
let u = UnitsOfMeasurement.getUnitsOfMeasurementByDomainAndSystem(domain, system)
|
|
|
for(let i in u){a.push(u[i])}
|
|
|
|
|
|
- let s = a.filter(m=>m.factor >= minFactor)
|
|
|
-
|
|
|
-
|
|
|
+ let s
|
|
|
+ if(ifRestrictFactor){//是否只用这一单位,如只用mm。如果不是,就会寻找最大的接近的单位,如设置最小为mmminFactor=0.001),则1.2米时是'1.2m'、0.2米时是'20cm'、0.002米时是'2mm'
|
|
|
+ s = a.filter(m=>m.factor == minFactor)
|
|
|
+ }else{
|
|
|
+ s = a.filter(m=>m.factor >= minFactor)
|
|
|
+ }
|
|
|
|
|
|
let c = s.reduce(function(prev, currentValue) {//reduce最终值是最后一次return的值 ( 没看懂这句话作用)
|
|
|
return currentValue.fromBase(number) < prev.fromBase(number) && currentValue.fromBase(number) >= 1 ? currentValue : prev
|