|
@@ -4,30 +4,11 @@
|
|
<m-header />
|
|
<m-header />
|
|
|
|
|
|
<van-cell-group>
|
|
<van-cell-group>
|
|
- <van-field
|
|
|
|
- readonly
|
|
|
|
- clickable
|
|
|
|
- label="订单类型"
|
|
|
|
- :value="orderText"
|
|
|
|
- input-align="right"
|
|
|
|
- placeholder="选择类型"
|
|
|
|
- @click="showPicker = true"
|
|
|
|
- />
|
|
|
|
|
|
+ <van-field readonly clickable label="订单类型" :value="orderText" input-align="right" placeholder="选择类型" @click="showPicker = true" />
|
|
<van-popup v-model="showPicker" round position="bottom">
|
|
<van-popup v-model="showPicker" round position="bottom">
|
|
- <van-picker
|
|
|
|
- show-toolbar
|
|
|
|
- :columns="columns"
|
|
|
|
- @cancel="showPicker = false"
|
|
|
|
- @confirm="onConfirm"
|
|
|
|
- />
|
|
|
|
|
|
+ <van-picker show-toolbar :columns="columns" @cancel="showPicker = false" @confirm="onConfirm" />
|
|
</van-popup>
|
|
</van-popup>
|
|
- <van-field
|
|
|
|
- :readonly="true"
|
|
|
|
- label="学生姓名"
|
|
|
|
- v-model="studentName"
|
|
|
|
- placeholder="请输入学生姓名"
|
|
|
|
- input-align="right"
|
|
|
|
- />
|
|
|
|
|
|
+ <van-field :readonly="true" label="学生姓名" v-model="studentName" placeholder="请输入学生姓名" input-align="right" />
|
|
<van-field
|
|
<van-field
|
|
label="选择商品"
|
|
label="选择商品"
|
|
:readonly="true"
|
|
:readonly="true"
|
|
@@ -41,12 +22,7 @@
|
|
placeholder="选择商品"
|
|
placeholder="选择商品"
|
|
input-align="right"
|
|
input-align="right"
|
|
/>
|
|
/>
|
|
- <van-cell
|
|
|
|
- v-for="(item, index) in goodsList"
|
|
|
|
- :key="index"
|
|
|
|
- class="input-cell"
|
|
|
|
- :center="true"
|
|
|
|
- >
|
|
|
|
|
|
+ <van-cell v-for="(item, index) in goodsList" :key="index" class="input-cell" :center="true">
|
|
<template slot="icon">
|
|
<template slot="icon">
|
|
<van-image :src="item.image" class="logo">
|
|
<van-image :src="item.image" class="logo">
|
|
<template v-slot:loading>
|
|
<template v-slot:loading>
|
|
@@ -57,151 +33,58 @@
|
|
<template slot="title">
|
|
<template slot="title">
|
|
<div>{{ item.goodsName }}</div>
|
|
<div>{{ item.goodsName }}</div>
|
|
<div class="price-section detail">
|
|
<div class="price-section detail">
|
|
- <span class="money"
|
|
|
|
- ><i>现价:¥</i>{{ item.discountPrice | moneyFormat }}</span
|
|
|
|
- >
|
|
|
|
|
|
+ <span class="money"><i>现价:¥</i>{{ item.discountPrice | moneyFormat }}</span>
|
|
<p class="groupPrice">
|
|
<p class="groupPrice">
|
|
- <span class="groupTitle">团购价:</span
|
|
|
|
- ><span class="groupMoney"
|
|
|
|
- >¥{{ item.groupPurchasePrice | moneyFormat }}</span
|
|
|
|
- >
|
|
|
|
|
|
+ <span class="groupTitle">团购价:</span><span class="groupMoney">¥{{ item.groupPurchasePrice | moneyFormat }}</span>
|
|
</p>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div style="position: absolute; right: 0.16rem; bottom: 0.1rem">
|
|
<div style="position: absolute; right: 0.16rem; bottom: 0.1rem">
|
|
- <van-stepper
|
|
|
|
- @change="calcPrice"
|
|
|
|
- :disable-input="true"
|
|
|
|
- v-model="item.goodsNum"
|
|
|
|
- button-size="22"
|
|
|
|
- />
|
|
|
|
|
|
+ <van-stepper @change="calcPrice" :disable-input="true" v-model="item.goodsNum" button-size="22" />
|
|
</div>
|
|
</div>
|
|
- <van-icon
|
|
|
|
- class="icon_close"
|
|
|
|
- name="cross"
|
|
|
|
- @click="onGoodDel(goodsList, item)"
|
|
|
|
- />
|
|
|
|
|
|
+ <van-icon class="icon_close" name="cross" @click="onGoodDel(goodsList, item)" />
|
|
</template>
|
|
</template>
|
|
</van-cell>
|
|
</van-cell>
|
|
</van-cell-group>
|
|
</van-cell-group>
|
|
|
|
|
|
<!-- 是否用余额支付 支付金额大于0时才会显示是否用余额支付 -->
|
|
<!-- 是否用余额支付 支付金额大于0时才会显示是否用余额支付 -->
|
|
<van-cell-group class="pay-section">
|
|
<van-cell-group class="pay-section">
|
|
- <van-cell
|
|
|
|
- :disabled="false"
|
|
|
|
- title="总价格"
|
|
|
|
- title-class="pay-name"
|
|
|
|
- value-class="pay-value"
|
|
|
|
- :center="true"
|
|
|
|
- >
|
|
|
|
|
|
+ <van-cell :disabled="false" title="总价格" title-class="pay-name" value-class="pay-value" :center="true">
|
|
<template #default> ¥{{ payCountMoney | moneyFormat }} </template>
|
|
<template #default> ¥{{ payCountMoney | moneyFormat }} </template>
|
|
</van-cell>
|
|
</van-cell>
|
|
- <van-field
|
|
|
|
- label="减免金额"
|
|
|
|
- @input="setNoMore"
|
|
|
|
- v-model="marketAmount"
|
|
|
|
- type="number"
|
|
|
|
- ref="marketInput"
|
|
|
|
- placeholder="请输入减免金额"
|
|
|
|
- input-align="right"
|
|
|
|
- />
|
|
|
|
|
|
+ <van-field label="减免金额" @input="setNoMore" v-model="marketAmount" type="number" ref="marketInput" placeholder="请输入减免金额" input-align="right" />
|
|
</van-cell-group>
|
|
</van-cell-group>
|
|
|
|
|
|
- <protocol
|
|
|
|
- v-model="agreeStatus"
|
|
|
|
- :userId="studentId.toString()"
|
|
|
|
- style="padding-top: 0.08rem"
|
|
|
|
- />
|
|
|
|
|
|
+ <protocol v-model="agreeStatus" :userId="studentId.toString()" style="padding-top: 0.08rem" />
|
|
|
|
|
|
<div class="button-group">
|
|
<div class="button-group">
|
|
- <van-button
|
|
|
|
- class="btn-sure"
|
|
|
|
- type="primary"
|
|
|
|
- @click="onRefundSure(obj)"
|
|
|
|
- round
|
|
|
|
- size="large"
|
|
|
|
- >确认</van-button
|
|
|
|
- >
|
|
|
|
|
|
+ <van-button class="btn-sure" type="primary" @click="onRefundSure(obj)" round size="large">确认</van-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <van-popup
|
|
|
|
- class="popup-qrcode"
|
|
|
|
- v-model="qrCodeStatus"
|
|
|
|
- closeable
|
|
|
|
- close-icon="cross"
|
|
|
|
- @close="onClose"
|
|
|
|
- >
|
|
|
|
|
|
+ <van-popup class="popup-qrcode" v-model="qrCodeStatus" closeable close-icon="cross" @close="onClose">
|
|
<div id="qrcode">
|
|
<div id="qrcode">
|
|
- <vue-qr
|
|
|
|
- :logoSrc="config.imagePath"
|
|
|
|
- :text="config.value"
|
|
|
|
- :margin="10"
|
|
|
|
- :size="220"
|
|
|
|
- ></vue-qr>
|
|
|
|
|
|
+ <vue-qr :logoSrc="config.imagePath" :text="config.value" :margin="10" :size="220"></vue-qr>
|
|
</div>
|
|
</div>
|
|
- <a
|
|
|
|
- id="tt"
|
|
|
|
- ref="download"
|
|
|
|
- v-show="false"
|
|
|
|
- :href="downloadUrl"
|
|
|
|
- :download="downloadfilename"
|
|
|
|
- ></a>
|
|
|
|
|
|
+ <a id="tt" ref="download" v-show="false" :href="downloadUrl" :download="downloadfilename"></a>
|
|
<!-- <p>点击图片进行下载</p> -->
|
|
<!-- <p>点击图片进行下载</p> -->
|
|
- <van-button
|
|
|
|
- v-if="!headerStatus"
|
|
|
|
- color="#01C1B5"
|
|
|
|
- :disabled="downloadStatus"
|
|
|
|
- type="primary"
|
|
|
|
- @click="createPoster"
|
|
|
|
- round
|
|
|
|
- >下载二维码</van-button
|
|
|
|
- >
|
|
|
|
|
|
+ <van-button v-if="!headerStatus" color="#01C1B5" :disabled="downloadStatus" type="primary" @click="createPoster" round>下载二维码</van-button>
|
|
</van-popup>
|
|
</van-popup>
|
|
|
|
|
|
- <van-popup
|
|
|
|
- v-model="goodsStatus"
|
|
|
|
- :lock-scroll="true"
|
|
|
|
- position="bottom"
|
|
|
|
- :style="{ height: '100%', borderRadius: '0', overflowY: 'auto' }"
|
|
|
|
- >
|
|
|
|
|
|
+ <van-popup v-model="goodsStatus" :lock-scroll="true" position="bottom" :style="{ height: '100%', borderRadius: '0', overflowY: 'auto' }">
|
|
<van-sticky offset-top="0">
|
|
<van-sticky offset-top="0">
|
|
<m-header :backUrl="backUrl2" name="商品列表" :isFixed="false" />
|
|
<m-header :backUrl="backUrl2" name="商品列表" :isFixed="false" />
|
|
<search @onSearch="onSearch" placeholder="请输入商品名称" />
|
|
<search @onSearch="onSearch" placeholder="请输入商品名称" />
|
|
<van-dropdown-menu active-color="#01C1B5">
|
|
<van-dropdown-menu active-color="#01C1B5">
|
|
- <van-dropdown-item
|
|
|
|
- :title="valueText1"
|
|
|
|
- v-model="value1"
|
|
|
|
- :options="option1"
|
|
|
|
- @change="onOptionChange"
|
|
|
|
- />
|
|
|
|
- <van-dropdown-item
|
|
|
|
- :title="valueText2"
|
|
|
|
- v-model="value2"
|
|
|
|
- :options="option2"
|
|
|
|
- @change="onOptionChange"
|
|
|
|
- />
|
|
|
|
|
|
+ <van-dropdown-item :title="valueText1" v-model="value1" :options="option1" @change="onOptionChange" />
|
|
|
|
+ <van-dropdown-item :title="valueText2" v-model="value2" :options="option2" @change="onOptionChange" />
|
|
</van-dropdown-menu>
|
|
</van-dropdown-menu>
|
|
</van-sticky>
|
|
</van-sticky>
|
|
|
|
|
|
<div>
|
|
<div>
|
|
- <van-list
|
|
|
|
- v-model="loading"
|
|
|
|
- class="studentContainer"
|
|
|
|
- v-if="dataShow"
|
|
|
|
- key="data"
|
|
|
|
- :finished="finished"
|
|
|
|
- finished-text=""
|
|
|
|
- @load="getGoodsList"
|
|
|
|
- >
|
|
|
|
|
|
+ <van-list v-model="loading" class="studentContainer" v-if="dataShow" key="data" :finished="finished" finished-text="" @load="getGoodsList">
|
|
<van-cell-group>
|
|
<van-cell-group>
|
|
- <van-cell
|
|
|
|
- v-for="(item, index) in dataList"
|
|
|
|
- :key="index"
|
|
|
|
- class="input-cell"
|
|
|
|
- @click="onChoiceGood(item)"
|
|
|
|
- :center="true"
|
|
|
|
- >
|
|
|
|
|
|
+ <van-cell v-for="(item, index) in dataList" :key="index" class="input-cell" @click="onChoiceGood(item)" :center="true">
|
|
<template slot="icon">
|
|
<template slot="icon">
|
|
<van-image :src="item.image" class="logo">
|
|
<van-image :src="item.image" class="logo">
|
|
<template v-slot:loading>
|
|
<template v-slot:loading>
|
|
@@ -211,18 +94,11 @@
|
|
</template>
|
|
</template>
|
|
<template slot="title">
|
|
<template slot="title">
|
|
<div>{{ item.name }}</div>
|
|
<div>{{ item.name }}</div>
|
|
- <van-tag plain color="#C2A076" style="margin: 0.04rem 0"
|
|
|
|
- >品牌:{{ item.brand }}</van-tag
|
|
|
|
- >
|
|
|
|
|
|
+ <van-tag plain color="#C2A076" style="margin: 0.04rem 0">品牌:{{ item.brand }}</van-tag>
|
|
<div class="price-section">
|
|
<div class="price-section">
|
|
- <span class="money"
|
|
|
|
- ><i>现价:¥</i>{{ item.discountPrice | moneyFormat }}</span
|
|
|
|
- >
|
|
|
|
|
|
+ <span class="money"><i>现价:¥</i>{{ item.discountPrice | moneyFormat }}</span>
|
|
<p class="groupPrice">
|
|
<p class="groupPrice">
|
|
- <span class="groupTitle">团购价:</span
|
|
|
|
- ><span class="groupMoney"
|
|
|
|
- >¥{{ item.groupPurchasePrice | moneyFormat }}</span
|
|
|
|
- >
|
|
|
|
|
|
+ <span class="groupTitle">团购价:</span><span class="groupMoney">¥{{ item.groupPurchasePrice | moneyFormat }}</span>
|
|
</p>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div class="price-section">
|
|
<div class="price-section">
|
|
@@ -238,29 +114,14 @@
|
|
|
|
|
|
<!-- 协议 -->
|
|
<!-- 协议 -->
|
|
<van-popup id="protocolPopup" v-model="popupStatus" position="bottom">
|
|
<van-popup id="protocolPopup" v-model="popupStatus" position="bottom">
|
|
- <m-protocol
|
|
|
|
- :protocolHTML="protocolHTML"
|
|
|
|
- @onClose="popupStatus = !popupStatus"
|
|
|
|
- @onPopupSure="popupStatus = !popupStatus"
|
|
|
|
- />
|
|
|
|
|
|
+ <m-protocol :protocolHTML="protocolHTML" @onClose="popupStatus = !popupStatus" @onPopupSure="popupStatus = !popupStatus" />
|
|
</van-popup>
|
|
</van-popup>
|
|
|
|
|
|
<van-popup v-model="refundStatus" position="bottom" v-if="refundStatus">
|
|
<van-popup v-model="refundStatus" position="bottom" v-if="refundStatus">
|
|
- <m-refund
|
|
|
|
- @onClose="refundStatus = !refundStatus"
|
|
|
|
- @onPopupSure="onRefundSure"
|
|
|
|
- :ids="[1, 2]"
|
|
|
|
- :buyList="buyList"
|
|
|
|
- :balance="this.orderType == 1 ? balance : 0"
|
|
|
|
- />
|
|
|
|
|
|
+ <m-refund @onClose="refundStatus = !refundStatus" @onPopupSure="onRefundSure" :ids="[1, 2]" :buyList="buyList" :balance="this.orderType == 1 ? balance : 0" />
|
|
</van-popup>
|
|
</van-popup>
|
|
|
|
|
|
- <m-payment
|
|
|
|
- :closeStatus="isStatus"
|
|
|
|
- :amount="payMoney"
|
|
|
|
- :payment="payment"
|
|
|
|
- @onChangeStatus="onChangeStatus"
|
|
|
|
- />
|
|
|
|
|
|
+ <m-payment :closeStatus="isStatus" :amount="payMoney" :payment="payment" @onChangeStatus="onChangeStatus" />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
@@ -271,12 +132,7 @@ import MRefund from "@/components/MRefund";
|
|
import MEmpty from "@/components/MEmpty";
|
|
import MEmpty from "@/components/MEmpty";
|
|
import Search from "@/components/Search";
|
|
import Search from "@/components/Search";
|
|
import qs from "query-string";
|
|
import qs from "query-string";
|
|
-import {
|
|
|
|
- addGoodsSellOrder,
|
|
|
|
- queryGoodsPage,
|
|
|
|
- queryGoodsCategoryPage,
|
|
|
|
- getUserCashAccount,
|
|
|
|
-} from "./api";
|
|
|
|
|
|
+import { addGoodsSellOrder, queryGoodsPage, queryGoodsCategoryPage, getUserCashAccount } from "./api";
|
|
import { browser, validStudentUrl } from "@/common/util";
|
|
import { browser, validStudentUrl } from "@/common/util";
|
|
import setLoading from "@/common/loading";
|
|
import setLoading from "@/common/loading";
|
|
import VueQr from "vue-qr";
|
|
import VueQr from "vue-qr";
|
|
@@ -606,12 +462,7 @@ export default {
|
|
let formCheckChange = false;
|
|
let formCheckChange = false;
|
|
let tempForm = this.tempForm;
|
|
let tempForm = this.tempForm;
|
|
// 判断是否修改过内容
|
|
// 判断是否修改过内容
|
|
- if (
|
|
|
|
- form.studentId == tempForm.studentId &&
|
|
|
|
- form.goodsList == tempForm.goodsList &&
|
|
|
|
- form.marketAmount == tempForm.marketAmount &&
|
|
|
|
- JSON.stringify(form.couponList) == JSON.stringify(tempForm.couponList)
|
|
|
|
- ) {
|
|
|
|
|
|
+ if (form.studentId == tempForm.studentId && form.goodsList == tempForm.goodsList && form.marketAmount == tempForm.marketAmount && JSON.stringify(form.couponList) == JSON.stringify(tempForm.couponList)) {
|
|
formCheckChange = true;
|
|
formCheckChange = true;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -650,12 +501,7 @@ export default {
|
|
onPosterCode(goodsId) {
|
|
onPosterCode(goodsId) {
|
|
this.$refs.goodsOrder.style.filter = "blur(3px)";
|
|
this.$refs.goodsOrder.style.filter = "blur(3px)";
|
|
this.qrCodeStatus = true;
|
|
this.qrCodeStatus = true;
|
|
- let url =
|
|
|
|
- validStudentUrl() +
|
|
|
|
- "/#/goodsOrderBuy?id=" +
|
|
|
|
- goodsId +
|
|
|
|
- "&studentId=" +
|
|
|
|
- this.studentId;
|
|
|
|
|
|
+ let url = validStudentUrl() + "/#/goodsOrderBuy?id=" + goodsId + "&studentId=" + this.studentId;
|
|
// console.log(url)
|
|
// console.log(url)
|
|
this.config.value = url;
|
|
this.config.value = url;
|
|
// 可以点击下载按钮了
|
|
// 可以点击下载按钮了
|
|
@@ -762,17 +608,13 @@ export default {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
if (this.marketAmount) {
|
|
if (this.marketAmount) {
|
|
- let reg =
|
|
|
|
- /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
|
|
|
|
|
|
+ let reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
|
|
if (!reg.test(this.marketAmount)) {
|
|
if (!reg.test(this.marketAmount)) {
|
|
this.$toast("请选输入正确的减免金额");
|
|
this.$toast("请选输入正确的减免金额");
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if (
|
|
|
|
- (this.payCountMoney - Number(this.marketAmount)).toFixed(2) <
|
|
|
|
- this.groupPrice
|
|
|
|
- ) {
|
|
|
|
|
|
+ if ((this.payCountMoney - Number(this.marketAmount)).toFixed(2) < this.groupPrice) {
|
|
this.$toast("减免后支付金额不能低于团购价");
|
|
this.$toast("减免后支付金额不能低于团购价");
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
@@ -809,7 +651,7 @@ export default {
|
|
balance: result.totalPrice,
|
|
balance: result.totalPrice,
|
|
},
|
|
},
|
|
});
|
|
});
|
|
- } else if (result.type == "ADAPAY") {
|
|
|
|
|
|
+ } else if (result.type == "ADAPAY" || result.type == "YEEPAY") {
|
|
this.payment = result;
|
|
this.payment = result;
|
|
this.payMoney = result.payMap.amount;
|
|
this.payMoney = result.payMap.amount;
|
|
// 开始支付窗口
|
|
// 开始支付窗口
|
|
@@ -851,18 +693,13 @@ export default {
|
|
// console.log(this.goodsList, "goodsList");
|
|
// console.log(this.goodsList, "goodsList");
|
|
goodsList.forEach((item) => {
|
|
goodsList.forEach((item) => {
|
|
this.buyList.push({
|
|
this.buyList.push({
|
|
- name:
|
|
|
|
- item.goodsNum > 1
|
|
|
|
- ? `${item.goodsName} * ${item.goodsNum}`
|
|
|
|
- : item.goodsName,
|
|
|
|
|
|
+ name: item.goodsNum > 1 ? `${item.goodsName} * ${item.goodsNum}` : item.goodsName,
|
|
type: "购买",
|
|
type: "购买",
|
|
price: Number((item.goodsNum * item.discountPrice).toFixed(2)),
|
|
price: Number((item.goodsNum * item.discountPrice).toFixed(2)),
|
|
couponType: this.couponObj[item.type],
|
|
couponType: this.couponObj[item.type],
|
|
});
|
|
});
|
|
tempPrice += Number((item.goodsNum * item.discountPrice).toFixed(2));
|
|
tempPrice += Number((item.goodsNum * item.discountPrice).toFixed(2));
|
|
- this.groupPrice += Number(
|
|
|
|
- (item.goodsNum * item.groupPurchasePrice).toFixed(2)
|
|
|
|
- );
|
|
|
|
|
|
+ this.groupPrice += Number((item.goodsNum * item.groupPurchasePrice).toFixed(2));
|
|
});
|
|
});
|
|
const couponType = {
|
|
const couponType = {
|
|
FULL_REDUCTION: "满减",
|
|
FULL_REDUCTION: "满减",
|
|
@@ -921,7 +758,7 @@ export default {
|
|
window.removeEventListener("hashchange", this.onHash, false);
|
|
window.removeEventListener("hashchange", this.onHash, false);
|
|
this.$toast.clear();
|
|
this.$toast.clear();
|
|
this.qrCodeStatus = false;
|
|
this.qrCodeStatus = false;
|
|
- }
|
|
|
|
|
|
+ },
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
<style lang="less" scoped>
|
|
<style lang="less" scoped>
|