Pay.vue

<template>
<!--视频信息-->
<div>
<div class="info">
<p class="info_title">商品信息</p>
<div class="box">
<div class="imgdiv">
<img :src="videoinfo.cover_img" alt="课程照片" />
</div>
<div class="txtdiv">
<p class="c_title">{{videoinfo.title}}</p>
<p class="price">¥:&nbsp;&nbsp;{{(videoinfo.price/100).toFixed(2)}}</p>
</div>
</div>
</div>
<!--底部支付-->
<div class="footer">
<p class="money">实付&nbsp;&nbsp;{{(videoinfo.price/100).toFixed(2)}}</p>
<p class="submit" @click="pay">立刻支付</p>
</div>
</div>
</template>
<script>
import { getVideoDetail, saveOrder } from "@/api/getData.js";
export default {
data() {
return {
videoinfo: {}
};
},
methods: {
//获取视频详情
async getDetail(vid) {
try {
const result = await getVideoDetail(vid);
if (result.data.code == 0) {
this.videoinfo = result.data.data;
}
} catch (err) {
console.log(err);
}
},
//下单
async pay() {
try {
const result = await saveOrder(
this.$store.state.token,
this.$route.query.video_id
);
if (result.data.code == 0) {
const toast = this.$createToast({
txt: "购买成功",
type: "correct",
time: 2000,
onTimeout: () => {
this.$router.push({ path: "/order" });
}
});
toast.show();
}else{
const toast = this.$createToast({
txt: `${result.data.msg}`,
type: "correct",
time: 2000
});
toast.show();
}
} catch (err) {
console.log(err);
}
}
},
mounted() {
this.getDetail(this.$route.query.video_id);
}
};
</script>
<style lang="scss" scoped>
// 视频标题
.info_title {
padding: 10px 20px;
background-color: #fff;
border-bottom: 1px solid #d9dde1;
}
.box {
background-color: #fff;
box-sizing: border-box;
padding: 20px;
display: flex;
margin-bottom: 15px;
.imgdiv {
width: 105px;
height: 59px;
flex-shrink: 0;
img {
width: 100%;
height: 100%;
}
}
.textdiv {
margin-left: 20px;
height: 59px;
flex-grow: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
.price {
flex-shrink: 0;
}
}
}
//底部
.footer {
position: fixed;
bottom: 0;
width: 100%;
height: 50px;
background-color: #fff;
display: flex;
justify-content: space-between;
box-shadow: 0 -2px 4px 0 rgba(0, 0, 0, 0.1);
font-size: 16px;
.money {
height: 50px;
line-height: 50px;
flex: 2;
text-align: center;
background-color: #fff;
}
.submit {
height: 50px;
line-height: 50px;
flex: 1;
text-align: center;
background-color: #ff2d50;
color: #fff;
}
}
</style>

yb课堂 下单页面组件开发 《四十三》的更多相关文章

  1. [课程设计]Scrum 2.2 多鱼点餐系统开发进度(下单页面修复&美化)

    [课程设计]Scrum 2.2 多鱼点餐系统开发进度  1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB ...

  2. ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl

    原文:ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 第四章 组合控件开发CompositeControl 大家好,今天我们来实现一个自定义的控件,之前我们已经 ...

  3. 网站开发进阶(四十三)html中,路径前加“/” 与不加“/”的区别

    网站开发进阶(四十三)html中,路径前加"/" 与不加"/"的区别 前言 <script src="js/downloadify.js&quo ...

  4. 每天记录一点:NetCore获得配置文件 appsettings.json vue-router页面传值及接收值 详解webpack + vue + node 打造单页面(入门篇) 30分钟手把手教你学webpack实战 vue.js+webpack模块管理及组件开发

    每天记录一点:NetCore获得配置文件 appsettings.json   用NetCore做项目如果用EF  ORM在网上有很多的配置连接字符串,读取以及使用方法 由于很多朋友用的其他ORM如S ...

  5. 基于GBT28181:SIP协议组件开发-----------第四篇SIP注册流程eXosip2实现(一)

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3945294.html. 上章节讲解了利用自主开发的组件SIP组件l ...

  6. ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 后篇 --事件冒泡

    原文:ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 后篇 --事件冒泡 CompositeControl  后篇 --事件冒泡 系列文章链接: ASP.NET ...

  7. stark组件开发之列表页面定制列

    先看一张页面展示的效果图: 看一看我的  model 表!是什么样子: 看一看数据库是什么样子: 看 页面展示图,有表头. 有数据.模型表中,每一个字段, 都指定了 verbose_name. 如何解 ...

  8. 从0搭建Vue3组件库(四): 如何开发一个组件

    本篇文章将介绍如何在组件库中开发一个组件,其中包括 如何本地实时调试组件 如何让组件库支持全局引入 如何在 setup 语法糖下给组件命名 如何开发一个组件 目录结构 在packages目录下新建co ...

  9. 汉王云名片识别(SM)组件开发详解

    大家好,最近在DeviceOne平台上做了一个汉王云名片识别的功能组件.下面把我开发过程给大家做一个分享,希望可以帮助到大家. 下面我把我的思路给大家讲解一下.   1.找到我要集成的sdk,也就是汉 ...

  10. ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

    原文:ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性 深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开 ...

随机推荐

  1. 圣诞快乐 - Splashtop 2020 年回顾及未来展望

    ​ 我们很高兴 Splashtop 的远程访问解决方案能够在这个充满挑战的时期为全球的组织和教育机构提供帮助. 实际上,2020 年 Splashtop 的每日使用量增加了400%!不仅如此,我们还增 ...

  2. NumPy 数组排序、过滤与随机数生成详解

    NumPy 数组排序 排序数组 排序数组意味着将元素按特定顺序排列.顺序可以是数字大小.字母顺序.升序或降序等. NumPy 的 ndarray 对象提供了一个名为 sort() 的函数,用于对数组进 ...

  3. Java的深浅拷贝认识

    目录 浅拷贝 深拷贝 分辨代码里的深浅拷贝 在Java中,深拷贝和浅拷贝是对象复制的两种方式,主要区别在于对对象内部的引用类型的处理上. 浅拷贝 定义: 浅拷贝是指创建一个新的对象,但这个新对象的属性 ...

  4. django多表关联实战

    定义模型类: from django.db import models from django.contrib.auth.models import User ''' ---------- Djang ...

  5. es 排序突然很慢的原因

    今天突然之间发现一个访问es的查询很慢.由刚上线之前测试的100ms直接到了5s左右.瞬间懵逼. 这个用户索引大概200w的数据. 查询语句如下 GET /user/_search{"fro ...

  6. wpf 双屏显示问题

    // 在WPF中处理双屏显示问题,通常需要确保应用程序能够识别两个显示器,并在每个显示器上正确渲染内容.以下是一个简化的示例,展示如何在WPF应用程序中设置窗口,使其跨越两个显示器:   using ...

  7. 【译】使用 .NET Aspire 和 Visual Studio 开发云原生应用

    我们很高兴地向大家介绍 .NET Aspire,它旨在简化 .NET 云原生应用程序的构建和管理方式..NET Aspire 为像您这样的开发人员提供了一个改进的.有主见的框架,用于构建分布式应用程序 ...

  8. zabbix笔记_003 配置微信告警

    配置邮件告警 安装python-requests,使用微信发送告警 发送告警报错: yum install -y python-requests 测试告警: cat weixin.py #------ ...

  9. NOIP模拟75

    前言 先吐槽一下出题人,T2 牛马数据连棵树都不是.. T3 描述不清楚.. T1 如何优雅的送分 解题思路 我考场上还真以为是个送分题,然而... 莫比乌斯反演... 对于一个数字 n 有 \(2^ ...

  10. Wgpu图文详解(01)窗口与基本渲染

    写在前面 如果对Rust与Wgpu比较关注的同学可能在网络上搜到过@sotrh国外大佬编写的<Learn Wgpu>,以及国内大佬@jinleili的优秀翻译作品<学习 Wgpu&g ...