优化会员下单
This commit is contained in:
parent
bf0614e10b
commit
3b0e6513c7
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "vite-electron",
|
||||
"private": true,
|
||||
"version": "1.2.2",
|
||||
"version": "1.2.3",
|
||||
"main": "dist-electron/main.js",
|
||||
"scripts": {
|
||||
"dev": "chcp 65001 && vite",
|
||||
|
|
|
|||
|
|
@ -52,11 +52,11 @@ const menus = ref([
|
|||
path: '/order',
|
||||
icon: 'Tickets'
|
||||
},
|
||||
{
|
||||
label: '网络',
|
||||
path: '/internat',
|
||||
icon: 'Paperclip'
|
||||
},
|
||||
// {
|
||||
// label: '网络',
|
||||
// path: '/internat',
|
||||
// icon: 'Paperclip'
|
||||
// },
|
||||
{
|
||||
label: '会员',
|
||||
path: '/member',
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<scanModal ref="scanModalRef" :amount="props.amount" :orderId="props.orderId" :selecttype="props.selecttype"
|
||||
@success="scanCodeSuccess" />
|
||||
:payType="payType" @success="scanCodeSuccess" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
|
@ -96,6 +96,7 @@ const waitPayMoney = computed(() => {
|
|||
})
|
||||
|
||||
const payActive = ref(0)
|
||||
const payType = ref('')
|
||||
const payList = ref([])
|
||||
const payLoading = ref(false)
|
||||
|
||||
|
|
@ -107,16 +108,20 @@ function scanCodeSuccess() {
|
|||
// 切换支付类型
|
||||
function payTypeChange(index, item) {
|
||||
payActive.value = index
|
||||
payType.value = item.payType
|
||||
if (item.payType == 'scanCode') {
|
||||
scanModalRef.value.show()
|
||||
}
|
||||
if (payList.value[payActive.value].payType == 'deposit' && !props.member.id) {
|
||||
scanModalRef.value.show()
|
||||
}
|
||||
}
|
||||
|
||||
// 结算支付
|
||||
async function confirmOrder() {
|
||||
if (payLoading.value) return
|
||||
try {
|
||||
if (payList.value[payActive.value].payType == 'scanCode') {
|
||||
if (payList.value[payActive.value].payType == 'scanCode' || payList.value[payActive.value].payType == 'deposit') {
|
||||
scanModalRef.value.show()
|
||||
} else {
|
||||
if (money.value < props.amount) return
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@
|
|||
import _ from "lodash";
|
||||
import { ref } from "vue";
|
||||
import icon from "@/assets/icon_scan.png";
|
||||
import { scanpay, queryOrder, quickPay, queryQuickPayStatus } from "@/api/pay";
|
||||
import { scanpay, queryOrder, quickPay, queryQuickPayStatus, accountPay } from "@/api/pay";
|
||||
import { useUser } from "@/store/user.js";
|
||||
const store = useUser();
|
||||
import {
|
||||
|
|
@ -83,6 +83,10 @@ const props = defineProps({
|
|||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
payType: {
|
||||
type: [Number, String],
|
||||
default: "",
|
||||
}
|
||||
});
|
||||
|
||||
const dialogVisible = ref(false);
|
||||
|
|
@ -115,10 +119,19 @@ async function submitHandle() {
|
|||
payType: "scanCode",
|
||||
});
|
||||
} else {
|
||||
await scanpay({
|
||||
orderId: props.orderId,
|
||||
authCode: scanCode.value,
|
||||
});
|
||||
if (props.payType == 'scanCode') {
|
||||
await scanpay({
|
||||
orderId: props.orderId,
|
||||
authCode: scanCode.value,
|
||||
});
|
||||
}
|
||||
if (props.payType == 'deposit') {
|
||||
await accountPay({
|
||||
orderId: props.orderId,
|
||||
memberId: '',
|
||||
memberAccount: scanCode.value
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@
|
|||
* @param {Object} Max
|
||||
*/
|
||||
export function RandomNumBoth(Max, Min = 0) {
|
||||
var Range = Max - Min;
|
||||
var Rand = Math.random();
|
||||
var num = Min + Math.round(Rand * Range); //四舍五入
|
||||
return num;
|
||||
var Range = Max - Min;
|
||||
var Rand = Math.random();
|
||||
var num = Min + Math.round(Rand * Range); //四舍五入
|
||||
return num;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -15,23 +15,40 @@ export function RandomNumBoth(Max, Min = 0) {
|
|||
* @param {Object} obj
|
||||
*/
|
||||
export function clearNoNum(obj) {
|
||||
//如果用户第一位输入的是小数点,则重置输入框内容
|
||||
if (obj.value != '' && obj.value.substr(0, 1) == '.') {
|
||||
obj.value = '';
|
||||
//如果用户第一位输入的是小数点,则重置输入框内容
|
||||
if (obj.value != "" && obj.value.substr(0, 1) == ".") {
|
||||
obj.value = "";
|
||||
}
|
||||
obj.value = obj.value.replace(/^0*(0\.|[1-9])/, "$1"); //粘贴不生效
|
||||
obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符
|
||||
obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
|
||||
obj.value = obj.value
|
||||
.replace(".", "$#$")
|
||||
.replace(/\./g, "")
|
||||
.replace("$#$", ".");
|
||||
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3"); //只能输入两个小数
|
||||
if (obj.value.indexOf(".") < 0 && obj.value != "") {
|
||||
//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
|
||||
if (obj.value.substr(0, 1) == "0" && obj.value.length == 2) {
|
||||
obj.value = obj.value.substr(1, obj.value.length);
|
||||
}
|
||||
obj.value = obj.value.replace(/^0*(0\.|[1-9])/, '$1'); //粘贴不生效
|
||||
obj.value = obj.value.replace(/[^\d.]/g, ''); //清除“数字”和“.”以外的字符
|
||||
obj.value = obj.value.replace(/\.{2,}/g, '.'); //只保留第一个. 清除多余的
|
||||
obj.value = obj.value
|
||||
.replace('.', '$#$')
|
||||
.replace(/\./g, '')
|
||||
.replace('$#$', '.');
|
||||
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数
|
||||
if (obj.value.indexOf('.') < 0 && obj.value != '') {
|
||||
//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
|
||||
if (obj.value.substr(0, 1) == '0' && obj.value.length == 2) {
|
||||
obj.value = obj.value.substr(1, obj.value.length);
|
||||
}
|
||||
}
|
||||
return obj.value;
|
||||
}
|
||||
}
|
||||
return obj.value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保留小数n位,不进行四舍五入
|
||||
* num你传递过来的数字,
|
||||
* decimal你保留的几位,默认保留小数后两位
|
||||
*/
|
||||
export function formatDecimal(num, decimal = 2) {
|
||||
num = num.toString();
|
||||
const index = num.indexOf(".");
|
||||
if (index !== -1) {
|
||||
num = num.substring(0, decimal + index + 1);
|
||||
} else {
|
||||
num = num.substring(0);
|
||||
}
|
||||
//截取后保留两位小数
|
||||
return parseFloat(num).toFixed(decimal);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,20 +6,22 @@
|
|||
<span>{{ dayjs(item.create_time).format("YYYY-MM-DD HH:mm:ss") }}</span>
|
||||
</div>
|
||||
<div class="dialog_footer_right">
|
||||
<span :class="{ active: item.biz_code == 'cashMemberIn' }">
|
||||
<template v-if="item.biz_code == 'cashMemberIn'">+</template>
|
||||
<span :class="{ active: checkIn(item.biz_code) }">
|
||||
<template v-if="checkIn(item.biz_code)">+</template>
|
||||
<template v-else>-</template>
|
||||
¥{{ (Math.floor(item.amount * 100) / 100).toFixed(2) }}
|
||||
¥{{ formatDecimal(item.amount) }}
|
||||
</span>
|
||||
<span>余额:¥{{ (Math.floor(item.balance * 100) / 100).toFixed(2) }}</span>
|
||||
<span>余额:¥{{ formatDecimal(item.balance) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<el-empty description="暂无数据" v-if="!props.flowingwater.list.length" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { dayjs } from 'element-plus'
|
||||
import { formatDecimal } from '@/utils/index'
|
||||
|
||||
const props = defineProps({
|
||||
flowingwater: {
|
||||
|
|
@ -27,6 +29,13 @@ const props = defineProps({
|
|||
default: {}
|
||||
}
|
||||
})
|
||||
|
||||
// 检测是否包含In
|
||||
function checkIn(str) {
|
||||
let reg = RegExp(/In/)
|
||||
return str.match(reg)
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
|
@ -43,7 +52,7 @@ const props = defineProps({
|
|||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid #ccc;
|
||||
border-bottom: 1px solid #ececec;
|
||||
padding-bottom: 6px;
|
||||
|
||||
.dialog_footer_left {
|
||||
|
|
|
|||
Loading…
Reference in New Issue