|
@@ -0,0 +1,332 @@
|
|
|
+<template>
|
|
|
+ <!-- 未支付 -->
|
|
|
+ <div class="Nopyment" v-loading="loading">
|
|
|
+ <div class="message">
|
|
|
+ <div>
|
|
|
+ <img :src="data.picture_url" alt="" />
|
|
|
+ </div>
|
|
|
+ <div class="text">
|
|
|
+ <p class="p1">
|
|
|
+ {{ data.name }}
|
|
|
+ </p>
|
|
|
+ <!-- <p class="p2">
|
|
|
+ <span>xx课程</span>
|
|
|
+ </p> -->
|
|
|
+ <p class="p3">{{ data.author }}</p>
|
|
|
+ </div>
|
|
|
+ <div class="price">
|
|
|
+ <p>¥{{ data.price }}</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="promotionCode">
|
|
|
+ <span class="sp1"> <!-- 使用优惠码 -->{{ this.$t("Key475") }} </span>
|
|
|
+ <!-- 请输入兑换码 -->
|
|
|
+ <input
|
|
|
+ v-model="discount_code"
|
|
|
+ type="text"
|
|
|
+ :placeholder="$t('Key109')"
|
|
|
+ @input="changeCode"
|
|
|
+ />
|
|
|
+ <span
|
|
|
+ class="sp2"
|
|
|
+ v-loading="codeloading"
|
|
|
+ @click="verifyCode"
|
|
|
+ v-if="isShow"
|
|
|
+ >
|
|
|
+ <!-- 确定 -->
|
|
|
+ {{ $t("Key94") }}</span
|
|
|
+ >
|
|
|
+ <span class="sp2" v-else>-{{ discount_money }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="total">
|
|
|
+ <p class="p1">
|
|
|
+ <span>
|
|
|
+ <!-- 一件商品,总金额: -->
|
|
|
+
|
|
|
+ {{ $t("Key53") }}:</span
|
|
|
+ >
|
|
|
+ <span class="co-value">¥{{ data.price }}</span>
|
|
|
+ </p>
|
|
|
+ <p class="p2">
|
|
|
+ <span>
|
|
|
+ <!-- 优惠折扣 -->
|
|
|
+ {{ $t("Key54") }}:</span
|
|
|
+ >
|
|
|
+ <span class="co-value">-¥{{ discount_money }}</span>
|
|
|
+ </p>
|
|
|
+ <p class="p3">
|
|
|
+ <span>
|
|
|
+ <!-- 应付 -->
|
|
|
+ {{ $t("Key55") }}:</span
|
|
|
+ >
|
|
|
+ <span class="co-value">¥{{ receivables_money }}</span>
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ <div class="submitBtn">
|
|
|
+ <button @click="buy(data)">
|
|
|
+ {{ $t("Key116") }}
|
|
|
+ <!-- 确定订单 -->
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+//这里可以导入其它文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
|
|
|
+//例如:import 《组件名称》from ‘《组件路径》';
|
|
|
+import { LearnWebSI } from "@/api/ajax";
|
|
|
+export default {
|
|
|
+ //import引入的组件需要注入到对象中才能使用
|
|
|
+ components: {},
|
|
|
+ props: ["data", "changeOrderNumber", "goods_type"],
|
|
|
+ data() {
|
|
|
+ //这里存放数据
|
|
|
+ return {
|
|
|
+ discount_code: "", //优惠码
|
|
|
+ discount_money: 0, // 优惠金额
|
|
|
+ receivables_money: this.data.price, // 应收款
|
|
|
+ back_discount_code: "", //优惠码
|
|
|
+ loading: false,
|
|
|
+ codeloading: false,
|
|
|
+ isShow: true,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ //计算属性 类似于data概念
|
|
|
+ computed: {},
|
|
|
+ //监控data中数据变化
|
|
|
+ watch: {},
|
|
|
+ //方法集合
|
|
|
+ methods: {
|
|
|
+ // 添加订单
|
|
|
+ buy(item) {
|
|
|
+ // 首先添加订单
|
|
|
+ this.loading = true;
|
|
|
+ let Mnam = "order-order_manager-AddMyOrder";
|
|
|
+ LearnWebSI(Mnam, {
|
|
|
+ goods_id: item.id, //商品id
|
|
|
+ goods_type: this.goods_type, //商品类型
|
|
|
+ goods_name: item.name, //商品名称
|
|
|
+ goods_picture_id: item.picture_id, //封面图片id
|
|
|
+ goods_person_name_desc: this.data.author, //老师
|
|
|
+ price: item.price, //价格
|
|
|
+ discount_code: this.back_discount_code,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ console.log(res);
|
|
|
+ this.changeOrderNumber(
|
|
|
+ res.id,
|
|
|
+ this.back_discount_code,
|
|
|
+ this.discount_money,
|
|
|
+ this.receivables_money
|
|
|
+ );
|
|
|
+ this.loading = false;
|
|
|
+ // 调取支付接口
|
|
|
+ })
|
|
|
+ .catch((res) => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //更改优惠码
|
|
|
+ changeCode() {
|
|
|
+ this.isShow = true;
|
|
|
+ this.discount_money = "0.00";
|
|
|
+ this.receivables_money = this.data.hasOwnProperty("price")
|
|
|
+ ? this.data.price
|
|
|
+ : this.data.goods_price;
|
|
|
+ },
|
|
|
+ clearData() {
|
|
|
+ this.isShow = true;
|
|
|
+ this.discount_code = "";
|
|
|
+ this.discount_money = "0.00";
|
|
|
+ this.receivables_money = this.data.hasOwnProperty("price")
|
|
|
+ ? this.data.price
|
|
|
+ : this.data.goods_price;
|
|
|
+ },
|
|
|
+ //验证优惠码
|
|
|
+ verifyCode() {
|
|
|
+ if (this.discount_code == "") {
|
|
|
+ this.$message.warning(this.$t("Key109")); //"请输入优惠码"
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.codeloading = true;
|
|
|
+ let MethodName = "order-order_manager-VerificationDiscountCode";
|
|
|
+ let resData = JSON.parse(JSON.stringify(this.data));
|
|
|
+
|
|
|
+ let data = {
|
|
|
+ goods_id: resData.id, //商品id
|
|
|
+ goods_type: 101, //商品类型
|
|
|
+ price: resData.price, //价格
|
|
|
+ discount_code: this.discount_code.trim(),
|
|
|
+ };
|
|
|
+ LearnWebSI(MethodName, data).then((res) => {
|
|
|
+ this.codeloading = false;
|
|
|
+ this.isShow = false;
|
|
|
+ this.back_discount_code = res.discount_code;
|
|
|
+ this.discount_money = res.discount_money; // 优惠金额
|
|
|
+ this.receivables_money = res.receivables_money; // 应收款
|
|
|
+ });
|
|
|
+ },
|
|
|
+ },
|
|
|
+ //生命周期 - 创建完成(可以访问当前this实例)
|
|
|
+ created() {},
|
|
|
+ //生命周期 - 挂载完成(可以访问DOM元素)
|
|
|
+ mounted() {},
|
|
|
+ //生命周期-创建之前
|
|
|
+ beforeCreated() {},
|
|
|
+ //生命周期-挂载之前
|
|
|
+ beforeMount() {},
|
|
|
+ //生命周期-更新之前
|
|
|
+ beforUpdate() {},
|
|
|
+ //生命周期-更新之后
|
|
|
+ updated() {},
|
|
|
+ //生命周期-销毁之前
|
|
|
+ beforeDestory() {},
|
|
|
+ //生命周期-销毁完成
|
|
|
+ destoryed() {},
|
|
|
+ //如果页面有keep-alive缓存功能,这个函数会触发
|
|
|
+ activated() {},
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+/* @import url(); 引入css类 */
|
|
|
+.Nopyment {
|
|
|
+ .message {
|
|
|
+ width: 100%;
|
|
|
+ height: 152px;
|
|
|
+ background: rgba(70, 70, 70, 0.03);
|
|
|
+ border-radius: 8px;
|
|
|
+ display: flex;
|
|
|
+ img {
|
|
|
+ width: 120px;
|
|
|
+ height: 120px;
|
|
|
+ margin-left: 16px;
|
|
|
+ margin-top: 16px;
|
|
|
+ }
|
|
|
+ .text {
|
|
|
+ margin-left: 24px;
|
|
|
+ .p1 {
|
|
|
+ width: 360px;
|
|
|
+ // height: 45px;
|
|
|
+ max-height: 48px;
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 20px;
|
|
|
+ color: #2c2c2c;
|
|
|
+ margin-top: 22px;
|
|
|
+ word-break: break-all;
|
|
|
+ display: -webkit-box;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
+ -webkit-line-clamp: 2;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ overflow: hidden;
|
|
|
+ }
|
|
|
+ .p2 {
|
|
|
+ margin-top: 10px;
|
|
|
+ span {
|
|
|
+ width: 64px;
|
|
|
+ height: 24px;
|
|
|
+ background: #ffefd8;
|
|
|
+ border-radius: 4px;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 12px;
|
|
|
+ text-align: center;
|
|
|
+ color: #ff9900;
|
|
|
+
|
|
|
+ line-height: 24px;
|
|
|
+ padding: 2px 8px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .p3 {
|
|
|
+ margin-top: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .price {
|
|
|
+ p {
|
|
|
+ margin-left: 67px;
|
|
|
+ margin-top: 22px;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 16px;
|
|
|
+ text-align: right;
|
|
|
+ color: #ff4c00;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .promotionCode {
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-start;
|
|
|
+ align-self: center;
|
|
|
+ width: 100%;
|
|
|
+ margin-top: 24px;
|
|
|
+ height: 58px;
|
|
|
+ line-height: 56px;
|
|
|
+ border-top: 1px solid rgba(44, 44, 44, 0.15);
|
|
|
+ border-bottom: 1px solid rgba(44, 44, 44, 0.15);
|
|
|
+ .sp1 {
|
|
|
+ font-size: 16px;
|
|
|
+ color: #000000;
|
|
|
+ }
|
|
|
+ input {
|
|
|
+ padding: 0 24px;
|
|
|
+ flex: 1;
|
|
|
+ height: 56px;
|
|
|
+ outline: none;
|
|
|
+ border: none;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+ .sp2 {
|
|
|
+ cursor: pointer;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #ff9900;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .total {
|
|
|
+ width: 656px;
|
|
|
+ text-align: right;
|
|
|
+ color: #000000;
|
|
|
+ font-size: 16px;
|
|
|
+ padding-top: 24px;
|
|
|
+ > p {
|
|
|
+ > span {
|
|
|
+ display: inline-block;
|
|
|
+ }
|
|
|
+ .co-value {
|
|
|
+ width: 160px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .p1 {
|
|
|
+ > span {
|
|
|
+ display: inline-block;
|
|
|
+ line-height: 24px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .p2 {
|
|
|
+ margin: 16px 0 10px;
|
|
|
+ }
|
|
|
+ .p3 {
|
|
|
+ > span {
|
|
|
+ line-height: 36px;
|
|
|
+ }
|
|
|
+ .co-value {
|
|
|
+ font-size: 24px;
|
|
|
+ color: #ff4c00;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .submitBtn {
|
|
|
+ text-align: right;
|
|
|
+ margin-top: 16px;
|
|
|
+ button {
|
|
|
+ width: 120px;
|
|
|
+ height: 40px;
|
|
|
+ background: #ff9900;
|
|
|
+
|
|
|
+ border-radius: 4px;
|
|
|
+ color: white;
|
|
|
+ line-height: 40px;
|
|
|
+ text-align: center;
|
|
|
+ border: none;
|
|
|
+ outline: none;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|