对接订单列表接口
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="operation_wrap">
|
||||
<div class="item"
|
||||
:class="{ disabled: goodsStore.cartList.length && (goodsStore.cartList[goodsStore.cartActiveIndex].number <= 1 || !goodsStore.cartList[goodsStore.cartActiveIndex].id || (goodsStore.cartList[goodsStore.cartActiveIndex].goods_type == 'package' && goodsStore.cartList[goodsStore.cartActiveIndex].group_type == 1)) }"
|
||||
:class="{ disabled: goodsStore.cartList.length && (!goodsStore.cartList[goodsStore.cartActiveIndex].id || (goodsStore.cartList[goodsStore.cartActiveIndex].goods_type == 'package' && goodsStore.cartList[goodsStore.cartActiveIndex].group_type == 1)) }"
|
||||
@click="numberChange('sub')">
|
||||
<el-icon class="icon">
|
||||
<SemiSelect />
|
||||
@@ -46,9 +46,7 @@
|
||||
</el-icon>
|
||||
<el-text class="t">赠送</el-text>
|
||||
</div>
|
||||
<div class="item"
|
||||
:class="{ disabled: goodsStore.cartList.length && goodsStore.cartList[goodsStore.cartActiveIndex].is_pack }"
|
||||
@click="giftPackHandle('is_pack')" v-if="shopStore.info.eatModel == 'take-out'">
|
||||
<div class="item" @click="packHandle">
|
||||
<el-icon class="icon">
|
||||
<Box />
|
||||
</el-icon>
|
||||
@@ -74,7 +72,7 @@
|
||||
</el-icon>
|
||||
<el-text class="t">挂单</el-text>
|
||||
</div> -->
|
||||
<div class="item" @click="tableMergingHandle" v-if="goodsStore.tableInfo.tableCode">
|
||||
<div class="item" @click="tableMergingRef.show()">
|
||||
<el-icon class="icon">
|
||||
<EditPen />
|
||||
</el-icon>
|
||||
@@ -124,12 +122,39 @@
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- 修改打包数量 -->
|
||||
<el-dialog v-model="showPackModal" title="打包数量" @open="packModalOpen" width="350">
|
||||
<div class="dialog">
|
||||
<div class="el-popover__title content">
|
||||
<el-form ref="packNumerFormRef" :model="packNumberForm" :rules="packNumberFormRules" label-width="60px"
|
||||
label-position="left">
|
||||
<el-form-item label="数量" prop="number">
|
||||
<el-input v-model="packNumberForm.number"
|
||||
:placeholder="`最多输入${+packItem.number}${packItem.unitName}`" @input="packNumberInput">
|
||||
<template #append>{{ packItem.unitName }}</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="footer_wrap">
|
||||
<div class="btn">
|
||||
<el-button style="width: 100%;" @click="showPackModal = false">取消</el-button>
|
||||
</div>
|
||||
<div class="btn">
|
||||
<el-button type="primary" style="width: 100%;" @click="packFormSubmit">确认</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- 合并/转桌 -->
|
||||
<tableMerging ref="tableMergingRef" @success="" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import takeFoodCode from '@/components/takeFoodCode.vue'
|
||||
import TableMerging from './tableMerging.vue'
|
||||
import skuModal from '@/components/skuModal.vue'
|
||||
import { useShop } from '@/store/shop.js'
|
||||
import { useGoods } from '@/store/goods.js'
|
||||
@@ -139,6 +164,8 @@ import { updatePrice, orderPrint } from '@/api/product.js'
|
||||
const shopStore = useShop()
|
||||
const goodsStore = useGoods()
|
||||
|
||||
const tableMergingRef = ref(null)
|
||||
|
||||
const props = defineProps({
|
||||
item: {
|
||||
type: Object,
|
||||
@@ -150,6 +177,20 @@ const emit = defineEmits(['confirm', 'delete', 'pending', 'clearCart', 'merging'
|
||||
const takeFoodCodeRef = ref(null)
|
||||
const skuModalRef = ref([])
|
||||
|
||||
// 显示打包
|
||||
function packHandle() {
|
||||
let item = goodsStore.cartList[goodsStore.cartActiveIndex]
|
||||
if (item && item.id) {
|
||||
if (item.number > 1) {
|
||||
// 大于1时需要编辑
|
||||
showPackModal.value = true
|
||||
} else {
|
||||
// 小于1时直接提交
|
||||
goodsStore.operateCart({ ...item, pack_number: item.number }, 'edit')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 赠送打包操作
|
||||
function giftPackHandle(key) {
|
||||
if (!goodsStore.cartList[goodsStore.cartActiveIndex].id) return
|
||||
@@ -178,12 +219,14 @@ function numberChange(t) {
|
||||
let item = goodsStore.cartList.length ? goodsStore.cartList[goodsStore.cartActiveIndex] : ''
|
||||
if (!item || (item.goods_type == 'package' && item.group_type == 1)) return
|
||||
|
||||
// if (!goodsStore.cartList[goodsStore.cartActiveIndex].id || (goodsStore.cartList[goodsStore.cartActiveIndex].goods_type == 'package' && goodsStore.cartList[goodsStore.cartActiveIndex].group_type == 1)) return
|
||||
switch (t) {
|
||||
case 'sub':
|
||||
if (goodsStore.cartList[goodsStore.cartActiveIndex].number <= 1) return
|
||||
goodsStore.cartList[goodsStore.cartActiveIndex].number--
|
||||
goodsStore.operateCart(goodsStore.cartList[goodsStore.cartActiveIndex], 'edit')
|
||||
if (item.number < item.suitNum) {
|
||||
goodsStore.deleteCartItem()
|
||||
} else {
|
||||
goodsStore.operateCart(goodsStore.cartList[goodsStore.cartActiveIndex], 'edit')
|
||||
}
|
||||
break;
|
||||
case 'add':
|
||||
goodsStore.cartList[goodsStore.cartActiveIndex].number++
|
||||
@@ -329,14 +372,6 @@ async function kitchenPrint() {
|
||||
}
|
||||
/**免厨打印 end */
|
||||
|
||||
|
||||
// 显示合并转桌
|
||||
function tableMergingHandle() {
|
||||
if (props.item.id) {
|
||||
emit('merging')
|
||||
}
|
||||
}
|
||||
|
||||
// 删除
|
||||
function deleteHandle() {
|
||||
if (goodsStore.cartList[goodsStore.cartActiveIndex].id) {
|
||||
@@ -348,6 +383,59 @@ function deleteHandle() {
|
||||
function clearCart() {
|
||||
goodsStore.clearCart()
|
||||
}
|
||||
|
||||
/** 修改打包数量 start */
|
||||
const showPackModal = ref(false)
|
||||
const packNumerFormRef = ref(null)
|
||||
const packItem = ref('')
|
||||
const packNumberForm = ref({
|
||||
number: 1
|
||||
})
|
||||
const packNumberFormRules = {
|
||||
number: [
|
||||
{
|
||||
required: true,
|
||||
validator: validatePackNumber,
|
||||
trigger: 'blur',
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
// 校验数量是否合法
|
||||
function validatePackNumber(rule, value, callback) {
|
||||
if (!packNumberForm.value.number) {
|
||||
callback(new Error('请输入打包数量'))
|
||||
} else if (packNumberForm.value.number < 1) {
|
||||
callback(new Error('输入有误'))
|
||||
} else if (packNumberForm.value.number > packItem.value.number) {
|
||||
callback(new Error(`最多输入${+packItem.value.number}${packItem.value.unitName}`))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
function packNumberInput(e) {
|
||||
setTimeout(() => {
|
||||
packNumberForm.value.number = inputFilterFloat(e)
|
||||
}, 50)
|
||||
}
|
||||
|
||||
// modal打开时
|
||||
function packModalOpen() {
|
||||
packItem.value = goodsStore.cartList[goodsStore.cartActiveIndex]
|
||||
}
|
||||
|
||||
// 提交
|
||||
function packFormSubmit() {
|
||||
packNumerFormRef.value.validate(valid => {
|
||||
if (valid) {
|
||||
showPackModal.value = false
|
||||
goodsStore.operateCart({ ...packItem.value, pack_number: packNumberForm.value.number }, 'edit')
|
||||
}
|
||||
})
|
||||
}
|
||||
/** 修改打包数量 end */
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
Reference in New Issue
Block a user