vue应用实例 单位换算(简仿百度单位换算网页工具)

1 篇文章 0 订阅

一、效果图

废话不多说先上效果图:
1、这是百度的
在这里插入图片描述
2、这是我的
在这里插入图片描述
(好吧,自惭形愧,还是差很多的!)

二、关键代码

1、html
(补充:页内导航不能使用 标签,否则会刷新全页,其中痛苦唯有自知)

<div id="main">
        <nav>||
            <div  v-on:click="makeActive('length')">长度</div>||
            <div  v-on:click="makeActive('area')">面积</div>||
            <div  v-on:click="makeActive('volume')">体积</div>||
            <div  v-on:click="makeActive('quality')">质量</div>||
            <!-- <div  v-on:click="makeActive('temperature')">温度</div>|| -->
            <div  v-on:click="makeActive('pressure')">压力</div>||
            <div  v-on:click="makeActive('power')">功率</div>||
        </nav>
        <div style="width: 350px; height: 50px;">
            <input v-model="input">
            <select size="1" style="width:80px;font-size:15px;margin-top: 10px;" v-model="first_unit">
                <option v-for="item in array">{{item.unit1}}</option>
            </select>
            <select size="1" style="width:80px;font-size:15px" v-model="second_unit">
                <option v-for="item in array">{{item.unit1}}</option>               
            </select>
        </div>
        <div style="width: 350px; height: 200px; font-size: 24px;text-align:center;">
            
            <p>{{input}}{{first_unit}} = {{conversion()}}{{second_unit}}</p>
            
        </div>
    </div>

2、js
array为当前工作数组,makeactive为导航函数,conversion为计算函数

new Vue({
            // DOM 元素,挂载视图模型
            el: '#main',

            // 定义属性,并设置初始值
            data: {
                // active: "",
                input: 0,
                first_unit: "m",
                second_unit: "m",
                length: [{
                        "unit1": "km",
                        "unit2": "m",
                        "rate": 1000
                    },
                    {
                        "unit1": "m",
                        "unit2": "m",
                        "rate": 1
                    },
                    {
                        "unit1": "dm",
                        "unit2": "m",
                        "rate": 0.1
                    },
                    {
                        "unit1": "cm",
                        "unit2": "m",
                        "rate": 0.01
                    },
                    {
                        "unit1": "mm",
                        "unit2": "m",
                        "rate": 0.001
                    },
                    {
                        "unit1": "um",
                        "unit2": "m",
                        "rate": 0.000001
                    },
                    {
                        "unit1": "nm",
                        "unit2": "m",
                        "rate": 0.000000001
                    }
                ],
                area: [],
                volume: [],
                quality: [],
                temperature: [],
                pressure: [],
                power: [],
                array: [{
                        "unit1": "km",
                        "unit2": "m",
                        "rate": 1000
                    },
                    {
                        "unit1": "m",
                        "unit2": "m",
                        "rate": 1
                    },
                    {
                        "unit1": "dm",
                        "unit2": "m",
                        "rate": 0.1
                    },
                    {
                        "unit1": "cm",
                        "unit2": "m",
                        "rate": 0.01
                    },
                    {
                        "unit1": "mm",
                        "unit2": "m",
                        "rate": 0.001
                    },
                    {
                        "unit1": "um",
                        "unit2": "m",
                        "rate": 0.000001
                    },
                    {
                        "unit1": "nm",
                        "unit2": "m",
                        "rate": 0.000000001
                    }
                ] 
                //点击菜单使用的函数

            },
            methods:{
                makeActive(item) {
                    // 模型改变,视图会自动更新
                    // this.active = item;
                    switch (item) {
                        case "length":
                            this.array = this.length;
                            break;
                        case "area":
                            this.array = this.area;
                            break;
                        case "volume":
                            this.array = this.volume;
                            break;
                        case "quality":
                            this.array = this.quality;
                            break;
                        case "temperature":
                            this.array = this.temperature;
                            break;
                        case "pressure":
                            this.array = this.pressure;
                            break;
                        case "power":
                            this.array = this.power;
                            break;
                            }
                    this.first_unit = this.array[0].unit2;
                    this.second_unit = this.array[0].unit2;

                },
                conversion() {
                    var arrayList = this.array;
                    var a = this.first_unit;
                    var b = this.second_unit;
                    
                    var item1 = arrayList.filter(function(item) {
                        if (item.unit1 === a) {
                            return item;
                        }
                    });

                    var item2 = arrayList.filter(function(item) {
                        if (item.unit1 === b) {
                            return item;
                        }
                    });

                    return this.input * item1[0].rate / item2[0].rate;
                },
            }
        });

(除length外,其他几个数组数据为节省空间没放!需要请下载完整项目“https://download.csdn.net/download/dyh111/11614276”)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引文,可知在Vue文件管理系统中,使用了一个名为`formatData`的方法来实现文件大小的换算。该方法接受三个参数:`row`表示绑定`formatter`的行数据,`column`表示当前列信息,`cellValue`表示当前单元格的值。通过这个方法,可以将文件大小从字节转换为更易读的单位。具体的换算规则如下: 1. 如果文件大小小于1KB,直接返回原始大小值加上字母"B"表示字节。 2. 如果文件大小小于1MB,将文件大小除以1024,并保留两位小数,然后加上字母"K"表示千字节。 3. 如果文件大小小于1GB,将文件大小除以1024的平方,保留两位小数,然后加上字母"M"表示兆字节。 4. 如果文件大小小于1TB,将文件大小除以1024的立方,保留两位小数,然后加上字母"G"表示吉字节。 5. 如果文件大小大于或等于1TB,将文件大小除以1024的四次方,保留两位小数,然后加上字母"T"表示太字节。 这样就可以在文件管理系统中显示更友好的文件大小信息了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Vue el-table表格数据文件大小转换为B、kb、M、G、T等](https://blog.csdn.net/qq_36256590/article/details/129754562)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue文件管理系统仿百度网盘](https://download.csdn.net/download/qq_22238199/13109125)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值