Web课外练习9

news2024/11/14 16:18:26

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>邮购商品业务</title>
    <!-- 引入vue.js -->
    <script src="./js/vue.global.js" type="text/javascript"></script>
    <link rel="stylesheet" href="./css/style.css">

</head>
<body>
    <div id="vue-e-22">
        <div>
            <form>
                <fieldset>
                    <legend align="center">邮购商品业务</legend>
					   <!--TODO1: 在下面四行代码中补全v-model指令,完成表单数据绑定 理解v-model双向绑定的特点 -->
                    客户姓名:<input type="text" key="name" v-model="name"/>
                    单价:<input type="text" key="price" v-model="price"/>
                    数量:<input  type="text" key="count" v-model="count"/>
                    购买价:<input type="text"  key="total" v-model="total" readonly><br>
                    <br>
                    总价:<input type="text" readonly v-model="sum" key="sum">
                    运费:{{ freight }}(购买价>=100元免运费)<br>
                    <input type="button" @click="add" value="记入流水">
                    <input type="button" @click="clear" value="重置" />
                </fieldset>
            </form>
        </div>

        <table border="1">
            <caption>销售流水帐</caption>
            <thead>
                <tr>
                    <th>业务时间</th>
                    <th>客户姓名</th>
                    <th>购买价</th>
                    <th>运费</th>
                    <th>总金额</th>
                </tr>
            </thead>
            <tbody>
                <tr v-for="(item, index) in business" :key="index">
                    <td>{{ formatDate(item.dateTime) }}</td>
                    <td>{{ item.name }}</td>
                    <td>{{ item.totalAll }}</td>
                    <td>{{ item.freight }}</td>
                    <td>{{ item.sumTotal }}</td>
                </tr>
            </tbody>
        </table>
    </div>
    <script type="text/javascript">
        const { createApp, ref, computed } = Vue;

        createApp({
            setup() {
                const name = ref('');
                const price = ref('');
                const count = ref('');
                const business = ref([]);
				// total计算属性
                const total = computed(() => {
					// TODO2:下面补充代码,完成计算购买价
                  if (name.value && price.value && count.value)
                    return price.value * count.value;
                    
                });
				//freight计算属性
                const freight = computed(() => {
					// TODO3:下面补充代码,计算运费,购买价大于100免运
                  if(total.value>=100)
                    return 0;
                  return 10;
                });
				// sum是计算属性
                const sum = computed(() => {
					// TODO4:下面补充代码,完成计算包括运费在内的总价
                  if (name.value && price.value && count.value)
                    return total.value + freight.value;
                });

                const clear = () => {
					// TODO5:下面补充代码,完成清除输入域
                name.value = '';
                price.value = 0;
                count.value = 0;
                business.value = [];
                };

                const add = () => {
					// TODO6:下面补充代码,完成添加流水
                    if (name.value && price.value && count.value) {
                        recode = {
                            dateTime: new Date(),
                            name: name.value,
                            totalAll: total.value,
                            freight: freight.value,
                            sumTotal: sum.value
                        };
                    business.value.push(recode);
                  }
                };

                const formatDate = (date) => {
                    let dy = date.getFullYear();
                    let dm = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
                    let dd = date.getDate();
                    let dhs = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
                    let dms = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
                    let dss = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
                    return `${dy}年${dm}月${dd}日  ${dhs}:${dms}:${dss}`;
                };

                return {
                    name,
                    price,
                    count,
                    business,
                    total,
                    freight,
                    sum,
                    clear,
                    add,
                    formatDate
                };
            }
        }).mount('#vue-e-22');
    </script>
</body>
</html>

 按住Ctrl点击导入的js和css文件路径将所需代码复制过去,或是将文件路径更改

  将helloworld.vue文件的多余部分删去

效果图:

 

配置环境可参考: 如何搭建一个vue项目(完整步骤)_vue搭建-CSDN博客

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1696642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于微信小程序低功耗蓝牙ECharts实时刷新

最近搞了这方面的东西&#xff0c;是刚刚开始接触微信小程序&#xff0c;因为是刚刚开始接触蓝牙设备&#xff0c;所以这篇文章适合既不熟悉小程序&#xff0c;又不熟悉蓝牙的新手看。 项目要求是获取到蓝牙传输过来的数据&#xff0c;并显示成图表实时显示&#xff1b; 我看了…

【全开源】招聘求职小程序系统源码(ThinkPHP+原生微信小程序)

基于ThinkPHP和原生微信小程序开发的招聘平台系统&#xff0c;包含微信小程序求职者端、微信小程序企业招聘端、PC企业招聘端、PC管理平台端 构建高效人才交流平台 一、引言&#xff1a;招聘求职市场的数字化趋势 在数字化时代&#xff0c;招聘求职市场也迎来了巨大的变革。…

软件杯 题目: 基于深度学习的疲劳驾驶检测 深度学习

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 &#x1f525; 优…

RT-DRET在实时目标检测上超越YOLO8

导读 目标检测作为计算机视觉的核心任务之一&#xff0c;其研究已经从基于CNN的架构发展到基于Transformer的架构&#xff0c;如DETR&#xff0c;后者通过简化流程实现端到端检测&#xff0c;消除了手工设计的组件。尽管如此&#xff0c;DETR的高计算成本限制了其在实时目标检测…

一文了解 - GPS/DR组合定位技术

GPS Global Position System 全球定位系统这个大家都很熟悉&#xff0c; 不做太多介绍。 DR Dead Reckoning 车辆推算定位法&#xff0c; 一种常用的辅助的车辆定位技术。 DR系统的优点&#xff1a; 不需要发射和接收信号&#xff1b; 不受电磁波干扰。 DR系统的缺点&#x…

Leetcode 剑指 Offer II 079.子集

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返…

Java——接口后续

1.Comparable 接口 在Java中&#xff0c;我们对一个元素是数字的数组可以使用sort方法进行排序&#xff0c;如果要对一个元素是对象的数组按某种规则排序&#xff0c;就会用到Comparable接口 当实现Comparable接口后&#xff0c;sort会自动调用Comparable接口里的compareTo 方法…

【Shell】sed编辑器实例

sed是用来解析和转换文本的工具&#xff0c;它使用简单&#xff0c;是简洁的程序设计语言。 sed编辑器 &#xff08;一&#xff09; sed编辑器基础1. 简介2. sed的模式空间 &#xff08;二&#xff09;基本的sed编辑命令&#xff08;三&#xff09;sed命令实例1. 向文件中添加或…

leetcode-189. 旋转数组 原地递归算法(非官方的三种方法)

Problem: 189. 轮转数组 思路 首先&#xff0c;很明显&#xff0c;题目要求的操作等同于将数组的后k%n个元素移动到前面来。 然后我们思考原地操作的方法&#xff1a; &#xff08;为了方便讲解&#xff0c;我们先假设k<n/2&#xff09; 1.我们将数组划分为 [A&#xff0c;B…

MCU最小系统电路设计

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 何为最小系统 最小系统板就是一个最精简的电路&#xff0c;精简到只能维持MCU最基本的正常工作 最小系统包括哪些模块 电源模块 MircoUSB接口 在这个图片当中&#xff0c;我…

ubuntu22.04 vsc命令行复制粘贴时下划线消失

vscode 在ubuntu的terminal中下划线不显示解决方案 CtrlShiftP&#xff0c;打开搜索&#xff0c;Perferences:Open User Settings 设置Editor:Font Family 为 ‘Ubuntu Mono’, monospace 保存&#xff0c;效果如图&#xff1a;

SpringBoot使用rsa-encrypt-body-spring-boot实现接口加解密

废话不多说&#xff0c;直接上代码 引入依赖 <dependency><groupId>cn.shuibo</groupId><artifactId>rsa-encrypt-body-spring-boot</artifactId><version>1.0.1.RELEASE</version> </dependency>配置文件 rsa:encrypt:# 是…

JAVA -- > 初识JAVA

初始JAVA 第一个JAVA程序详解 public class Main {public static void main(String[] args) {System.out.println("Hello world");} }1.public class Main: 类型,作为被public修饰的类,必须与文件名一致 2.public static 是JAVA中main函数准写法,记住该格式即可 …

【how2j java应用】

[Log4j] 演示如何使用log4j进行日志输出 1.导入jar包 2.使用Log4j 3.代码说明 LOG4J 配置讲解 在src目录下添加log4j.properties文件 说明 log4j.xml 除了使用log4j.properties&#xff0c;也可以使用xml格式进行配置。 [junit] 通过main方法来进行测试&#xff1a;如果…

5.20Git

版本控制工具Git&#xff0c;其他的工具还有SVN 共享代码&#xff0c;追溯记录&#xff0c;存储.c文件 Git实现的功能&#xff1a;回溯&#xff08;以前某个时间节点的数据情况&#xff09;共享&#xff08;大家共享修改&#xff09; Git&#xff1a;80% SVN&#xff…

MySQL——MySQL目录结构

MySQL安装完成后&#xff0c;会在磁盘上生成一个目录&#xff0c;该目录被称为MySQL的安装目录。在MySQL的安装目录中包含了启动文件、配置文件、数据库文件和命令文件等。 下面对 MySQL 的安装目录进行详细讲解 (1)bin 目录 : 用于放置一些可执行文件,如 mysql.exe、mysqld. …

数组-下一个排列

一、题目描述 二、解题思路 1.反向遍历当前排列&#xff0c;比如 排列A[a,b,c,d,e,f...] &#xff0c;当遍历到e时&#xff0c;说明以 a,b,c,d,e为前缀的排列中不存在A排列的下一个排列。 2.把e&#xff08;位置设为idx&#xff09;和后面的元素作比较&#xff1a; 2.1 如果有…

网络模型—BIO、NIO、IO多路复用、信号驱动IO、异步IO

一、用户空间和内核空间 以Linux系统为例&#xff0c;ubuntu和CentOS是Linux的两种比较常见的发行版&#xff0c;任何Linux发行版&#xff0c;其系统内核都是Linux。我们在发行版上操作应用&#xff0c;如Redis、Mysql等其实是无法直接执行访问计算机硬件(如cpu&#xff0c;内存…

LabVIEW步开发进电机的串口控制程序

LabVIEW步开发进电机的串口控制程序 为了提高电机控制的精确度和自动化程度&#xff0c;开发一种基于LabVIEW的实时、自动化电机串口控制程序。利用LabVIEW软件的图形化编程特性&#xff0c;通过串口实时控制电机的运行参数&#xff0c;实现电机性能的精准控制与评估。 系统组…

Spring MVC+mybatis 项目入门:旅游网(三)用户注册——控制反转以及Hibernate Validator数据验证

个人博客&#xff1a;Spring MVCmybatis 项目入门:旅游网&#xff08;三&#xff09;用户注册 | iwtss blog 先看这个&#xff01; 这是18年的文章&#xff0c;回收站里恢复的&#xff0c;现阶段看基本是没有参考意义的&#xff0c;技术老旧脱离时代&#xff08;2024年辣铁铁&…