当前位置: 首页 > article >正文

单位切换且后换算得方法

1.css样式,设置焦点失去和单位切换得方法,且单位联动,单位得v-model绑定得要是一样得就行,方便后面做联动

//输入,并且可以切换单位
 <el-form-item class="formCss flexStyle">
            <div style="width:100px;    line-height: 1;">{{ $t('message.designflowrate') }}</div>
            <div>
              <el-input @blur="flowrateinputBlur('设计')" v-model="flowrateObj.design" style="width: 240px" />
              <el-select @change="flowrateinputBlur('设计')" v-model="selectionCalculationForm.designUnit" placeholder="Select" style="width: 240px">
                <el-option v-for="(item,index) in flowrateUnit" :key="index" :label="item" :value="item"></el-option>
              </el-select>
            </div>

          </el-form-item>
          <el-form-item class="formCss flexStyle">
            <div style="width:100px;">{{ $t('message.maxfowrate') }}</div>
            <div>
              <el-input @blur="flowrateinputBlur('最大')" v-model="flowrateObj.maximum" style="width: 240px" />
              <el-select @change="flowrateinputBlur('最大')" v-model="selectionCalculationForm.designUnit" placeholder="Select" style="width: 240px">
                <el-option v-for="(item,index) in flowrateUnit" :key="index" :label="item" :value="item"></el-option>
              </el-select>
            </div>
          </el-form-item>
          <el-form-item class="formCss flexStyle">
            <div style="width:100px;  line-height: 1;">{{ $t('message.operationflowrate') }}</div>
            <div>
              <el-input @blur="flowrateinputBlur('操作')" v-model="flowrateObj.operating" style="width: 240px" />
              <el-select @change="flowrateinputBlur('操作')" v-model="selectionCalculationForm.designUnit" placeholder="Select" style="width: 240px">
                <el-option v-for="(item,index) in flowrateUnit" :key="index" :label="item" :value="item"></el-option>
              </el-select>
            </div>
          </el-form-item>
          <el-form-item class="formCss flexStyle">
            <div style="width:100px;">{{ $t('message.minflowrate') }}</div>
            <div>
              <el-input @blur="flowrateinputBlur('最小')" v-model="flowrateObj.minimum" style="width: 240px" />
              <el-select @change="flowrateinputBlur('最小')" v-model="selectionCalculationForm.designUnit" placeholder="Select" style="width: 240px">
                <el-option v-for="(item,index) in flowrateUnit" :key="index" :label="item" :value="item"></el-option>
              </el-select>
            </div>
          </el-form-item>






//用于展示单位换算后得数据

 <el-form-item class="formCss" flexStyle>
            <div style="width:100px;    line-height: 1;">{{ $t('message.designflowrate') }}</div>
            <div>
              <el-input disabled v-model="countToFixedObj.design" style="width: 240px" />
              <el-input disabled value='kg/hr' style="width: 110px;color:black" />
            </div>
          </el-form-item>
          <el-form-item class="formCss" flexStyle>
            <div style="width:100px;">{{ $t('message.maxfowrate') }}</div>
            <div>
              <el-input disabled v-model="countToFixedObj.maximum" style="width: 240px" />
              <el-input disabled value='kg/hr' style="width: 110px" />
            </div>
          </el-form-item>
          <el-form-item class="formCss" flexStyle>
            <div style="width:100px;  line-height: 1;">{{ $t('message.operationflowrate') }}</div>
            <div>
              <el-input disabled v-model="countToFixedObj.operating" style="width: 240px" />
              <el-input disabled value='kg/hr' style="width: 110px" />
            </div>
          </el-form-item>
          <el-form-item class="formCss" flexStyle>
            <div style="width:100px;">{{ $t('message.minflowrate') }}</div>
            <div>
              <el-input disabled v-model="countToFixedObj.minimum" style="width: 240px" />
              <el-input disabled value='kg/hr' style="width: 110px" />
            </div>
          </el-form-item>

2.方法,切换单位后转换值,使用switch对所有需要的单位匹配

private flowrateinputDesign() {
    let flowratemin_kg_hr = null
    let flowratemin_m3_hr = null
    let flowratemin_m3_s = null
    this.numDesin = []
    flowratemin_kg_hr = null
    flowratemin_m3_hr = null
    flowratemin_m3_s = null
    switch (this.selectionCalculationForm.designUnit) {
      case 'g/s':
        flowratemin_kg_hr = this.flowrateObj.design * 3.6
        flowratemin_m3_hr = this.flowrateObj.design * 0.0040770102
        flowratemin_m3_s = this.flowrateObj.design * 0.0000013

        this.numDesin.push({
          kg_hr: flowratemin_kg_hr,
          m3_hr: flowratemin_m3_hr,
          m3_s: flowratemin_m3_s
        })

        this.countObj.design = this.numDesin[0].m3_s
        this.countToFixedObj.design = this.numDesin[0].kg_hr.toFixed(3)
        return
      case 'g/hr':
        flowratemin_kg_hr = this.flowrateObj.design * 0.001
        flowratemin_m3_hr = this.flowrateObj.design * 0.0000011325
        flowratemin_m3_s = this.flowrateObj.design * 0.000000000315

        this.numDesin.push({
          kg_hr: flowratemin_kg_hr,
          m3_hr: flowratemin_m3_hr,
          m3_s: flowratemin_m3_s
        })
        this.countObj.design = this.numDesin[0].m3_s
        this.countToFixedObj.design = this.numDesin[0].kg_hr.toFixed(3)
        return
  

      default:
    }
  }

3.单位联动

private flowrateinputBlur(text) {
//调用 单位换算得方法,实现单位切换后,右边得数值跟着换算
    this.flowrateinputDesign()
    if (text == '最大') {
          this.flowrateinputMax()
        } else if (text == '最小') {
          this.flowrateinputMin()
        } else if (text == '操作') {
          this.flowrateinputOperating()
        } else if (text == '设计') {
          this.flowrateinputDesign()
        }
}


http://www.kler.cn/a/549234.html

相关文章:

  • 前端知识速记:BFC与IFC
  • C/C++程序的内存是如何开辟的?
  • 【C++笔记】C++11的深度剖析(一)
  • 深入解析DNS:从域名到IP的寻址之旅
  • 深兰科技与银川市苏银产业园签署协议,共建AI装备西部产业基地
  • freertos源码分析DAY12 (软件定时器)
  • osgearth控件显示中文(八)
  • Audio-Visual Speech Enhancement(视听语音增强)领域近三年研究进展与国内团队及手机厂商动态分析
  • 【函数题】6-10 二分查找
  • 【LeetCode】438.找到字符串中所有的字母异位词
  • 请解释设备像素、CSS 像素、设备独立像素、DPR、PPI 之间的区别?
  • 详解如何使用Pytest内置Fixture tmp_path 管理临时文件
  • Redis之持久化
  • VUE3环境搭建
  • 【iOS】SwiftUI状态管理
  • Kotlin 2.1.0 入门教程(十八)函数式接口
  • AI与SEO协同:智能关键词挖掘与精准部署策略
  • 2025年前端工程师职业发展的系统性应聘规划
  • 深度学习(1)-简单神经网络示例
  • 【力扣】98.验证搜索二叉树