更新页面样式,增加退菜数量选择以及退款原因
This commit is contained in:
@@ -38,7 +38,12 @@
|
|||||||
>
|
>
|
||||||
下载台桌码
|
下载台桌码
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" icon="el-icon-download">下载店铺码</el-button>
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="downloadShopCode"
|
||||||
|
>下载店铺码</el-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="u-flex u-p-b-15 u-font-14">
|
<div class="u-flex u-p-b-15 u-font-14">
|
||||||
@@ -233,7 +238,7 @@ import {
|
|||||||
tbShopTable,
|
tbShopTable,
|
||||||
} from "@/api/table";
|
} from "@/api/table";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
|
import { downloadFile } from "@/utils/index";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
@@ -255,12 +260,12 @@ export default {
|
|||||||
selTable: "", //当前选中的桌台
|
selTable: "", //当前选中的桌台
|
||||||
areaMap: {},
|
areaMap: {},
|
||||||
shopInfo: {},
|
shopInfo: {},
|
||||||
timer:null
|
timer: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
this.clearTimer();
|
this.clearTimer();
|
||||||
console.log('beforeDestroy')
|
console.log("beforeDestroy");
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.clearTimer();
|
this.clearTimer();
|
||||||
@@ -270,7 +275,7 @@ export default {
|
|||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
formatTime(milliseconds) {
|
formatTime(milliseconds) {
|
||||||
console.log(milliseconds)
|
console.log(milliseconds);
|
||||||
if (!milliseconds) {
|
if (!milliseconds) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
@@ -281,21 +286,37 @@ export default {
|
|||||||
const minutes = Math.floor(
|
const minutes = Math.floor(
|
||||||
(milliseconds % (1000 * 60 * 60)) / (1000 * 60)
|
(milliseconds % (1000 * 60 * 60)) / (1000 * 60)
|
||||||
);
|
);
|
||||||
return `${days ? days + "天" : ""} ${hours ? hours + "时" : ""} ${minutes + "分"
|
return `${days ? days + "天" : ""} ${hours ? hours + "时" : ""} ${
|
||||||
|
minutes + "分"
|
||||||
}`;
|
}`;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
clearTimer(){
|
async downloadShopCode() {
|
||||||
console.log('clearTimer')
|
try {
|
||||||
clearInterval(this.timer);
|
const link = document.createElement("a");
|
||||||
this.timer=null;
|
link.href = this.shopInfo.smallQrcode;
|
||||||
|
const fileName = this.shopInfo.shopName +"店铺码"+ ".png";
|
||||||
|
console.log(fileName)
|
||||||
|
link.setAttribute("download", fileName);
|
||||||
|
document.body.appendChild(link);
|
||||||
|
link.click();
|
||||||
|
document.body.removeChild(link);
|
||||||
|
this.$message.success("下载成功");
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
setTimter(time=60){
|
clearTimer() {
|
||||||
this.timer=setInterval(() => {
|
console.log("clearTimer");
|
||||||
const showloading=false
|
clearInterval(this.timer);
|
||||||
this.tbShopTableGet(showloading)
|
this.timer = null;
|
||||||
}, time*1000);
|
},
|
||||||
|
setTimter(time = 60) {
|
||||||
|
this.timer = setInterval(() => {
|
||||||
|
const showloading = false;
|
||||||
|
this.tbShopTableGet(showloading);
|
||||||
|
}, time * 1000);
|
||||||
},
|
},
|
||||||
//获取店铺信息
|
//获取店铺信息
|
||||||
async getShopInfo() {
|
async getShopInfo() {
|
||||||
@@ -372,9 +393,9 @@ export default {
|
|||||||
table_name: this.selTable.name,
|
table_name: this.selTable.name,
|
||||||
tableId: this.selTable.tableId,
|
tableId: this.selTable.tableId,
|
||||||
useType: this.selTable.useType,
|
useType: this.selTable.useType,
|
||||||
maxCapacity:this.selTable.maxCapacity,
|
maxCapacity: this.selTable.maxCapacity,
|
||||||
masterId:this.selTable.masterId,
|
masterId: this.selTable.masterId,
|
||||||
orderId:this.selTable.orderId,
|
orderId: this.selTable.orderId,
|
||||||
...query,
|
...query,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -406,7 +427,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 台桌列表
|
// 台桌列表
|
||||||
async tbShopTableGet(showloading=true) {
|
async tbShopTableGet(showloading = true) {
|
||||||
this.loading = showloading;
|
this.loading = showloading;
|
||||||
try {
|
try {
|
||||||
const { content, total } = await tbShopTableGet({
|
const { content, total } = await tbShopTableGet({
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="flex order-item relative" :class="[isActive]" @click="itemClick">
|
<div
|
||||||
|
class="flex order-item u-m-b-14 relative"
|
||||||
|
:class="[isActive]"
|
||||||
|
@click="itemClick"
|
||||||
|
>
|
||||||
<span class="absolute pack" v-if="item.isPack === 'true'"> 包 </span>
|
<span class="absolute pack" v-if="item.isPack === 'true'"> 包 </span>
|
||||||
<span class="absolute tui" v-if="item.status === 'return'"> 退 </span>
|
<span class="absolute tui" v-if="item.status === 'return'"> 退 </span>
|
||||||
<div class="flex">
|
<div class="flex u-col-top">
|
||||||
<div class="img">
|
<div class="img">
|
||||||
<div
|
<div
|
||||||
class="isSeatFee img u-line-1 u-flex u-col-center u-row-center"
|
class="isSeatFee img u-line-1 u-flex u-col-center u-row-center"
|
||||||
@@ -12,7 +16,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<img v-else :src="item.coverImg" class="" alt="" />
|
<img v-else :src="item.coverImg" class="" alt="" />
|
||||||
</div>
|
</div>
|
||||||
<div class="good-info">
|
<div class="good-info u-p-t-6">
|
||||||
<div class="flex lh-16">
|
<div class="flex lh-16">
|
||||||
<div class="name" :class="{ 'free-price': item.status === 'return' }">
|
<div class="name" :class="{ 'free-price': item.status === 'return' }">
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
@@ -24,13 +28,23 @@
|
|||||||
<div v-if="item.specSnap" class="specSnap">
|
<div v-if="item.specSnap" class="specSnap">
|
||||||
{{ item.specSnap }}
|
{{ item.specSnap }}
|
||||||
</div>
|
</div>
|
||||||
<template v-if="item.note">
|
|
||||||
<div class="note">备注:{{ item.note || "" }}</div>
|
<div class="" v-if="placeNum == 0">
|
||||||
</template>
|
<div class="note" v-if="item.note">
|
||||||
|
备注:{{ item.note || "" }}
|
||||||
|
</div>
|
||||||
|
<div class="note flex" v-else>
|
||||||
|
<span>备注:</span>
|
||||||
|
<span class="el-icon-edit u-font-12" @click="editNote"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="note" v-if="placeNum != 0 && item.note">
|
||||||
|
备注:{{ item.note || "" }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex">
|
<div class="flex u-p-t-6">
|
||||||
<div class="order-number-box">
|
<div class="order-number-box u-font-12">
|
||||||
<div class="" v-if="isSeatFee">X{{ item.totalNumber }}</div>
|
<div class="" v-if="isSeatFee">X{{ item.totalNumber }}</div>
|
||||||
<div class="" v-else>X{{ item.number }}</div>
|
<div class="" v-else>X{{ item.number }}</div>
|
||||||
<div class="absolute" v-if="canChangeNumber">
|
<div class="absolute" v-if="canChangeNumber">
|
||||||
@@ -136,6 +150,11 @@ export default {
|
|||||||
this.number = this.item.number;
|
this.number = this.item.number;
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
editNote() {
|
||||||
|
if (this.placeNum === 0) {
|
||||||
|
this.$emit("editNote", this.index);
|
||||||
|
}
|
||||||
|
},
|
||||||
//购物车商品输入框数量改变
|
//购物车商品输入框数量改变
|
||||||
cartGoodsNumberChange(newval) {
|
cartGoodsNumberChange(newval) {
|
||||||
if (newval <= 0) {
|
if (newval <= 0) {
|
||||||
@@ -207,13 +226,13 @@ export default {
|
|||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.order-item {
|
.flex.order-item {
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
display: flex;
|
display: flex;
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
align-items: center;
|
align-items: flex-start;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
background-color: rgba(0, 0, 0, 0);
|
background-color: rgba(0, 0, 0, 0);
|
||||||
transition: all 0.3s;
|
transition: all 0.3s;
|
||||||
@@ -245,6 +264,7 @@ export default {
|
|||||||
|
|
||||||
.total-price {
|
.total-price {
|
||||||
width: 94px;
|
width: 94px;
|
||||||
|
font-size: 16px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,25 +289,25 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.img {
|
.img {
|
||||||
width: 40px;
|
width: 59px;
|
||||||
height: 40px;
|
height: 59px;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 40px;
|
width: 59px;
|
||||||
height: 40px;
|
height: 59px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.note{
|
.note {
|
||||||
max-width: 70%;
|
max-width: 70%;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
color: #999;
|
color: #999;
|
||||||
margin-top: 2px;
|
margin-top: 5px;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
}
|
}
|
||||||
.order-number-box {
|
.order-number-box {
|
||||||
position: relative;
|
position: relative;
|
||||||
@@ -295,8 +315,8 @@ export default {
|
|||||||
.absolute {
|
.absolute {
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
right: -30px;
|
right: -38px;
|
||||||
top: -12px;
|
top: -14px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
.order-input-number {
|
.order-input-number {
|
||||||
|
|||||||
121
src/views/tool/Instead/components/number-box.vue
Normal file
121
src/views/tool/Instead/components/number-box.vue
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="flex">
|
||||||
|
<i class="icon-remove" @click="reduce"></i>
|
||||||
|
<div style="width: 40px" class="number-box">
|
||||||
|
<el-input
|
||||||
|
:min="min"
|
||||||
|
:max="max"
|
||||||
|
type="number"
|
||||||
|
v-model="number"
|
||||||
|
placeholder="0"
|
||||||
|
@blur="valChange(number, true)"
|
||||||
|
@input="valChange"
|
||||||
|
></el-input>
|
||||||
|
</div>
|
||||||
|
<!-- <i class="el-icon-remove"></i> -->
|
||||||
|
<i class="el-icon-circle-plus icon-add" @click="add"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { formatPrice } from "@/utils/format";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
modelValue: {
|
||||||
|
type: Number,
|
||||||
|
default: 1,
|
||||||
|
},
|
||||||
|
min: {
|
||||||
|
type: Number,
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
|
max: {
|
||||||
|
type: Number,
|
||||||
|
default: Infinity,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
min(val) {
|
||||||
|
this.number = val;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return { number: 1 };
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
valChange(val, isNow = false) {
|
||||||
|
console.log(val);
|
||||||
|
const max = this.max;
|
||||||
|
const min = this.min;
|
||||||
|
const returnNewval = formatPrice(val, min, max, true);
|
||||||
|
let newval = 0;
|
||||||
|
if (typeof returnNewval !== "number") {
|
||||||
|
newval = returnNewval.value;
|
||||||
|
} else {
|
||||||
|
newval = returnNewval;
|
||||||
|
}
|
||||||
|
newval=parseInt(newval);
|
||||||
|
console.log(newval);
|
||||||
|
if (isNow) {
|
||||||
|
this.number = newval;
|
||||||
|
this.$emit("input", this.number);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setTimeout(() => {
|
||||||
|
this.number = newval;
|
||||||
|
this.$emit("input", this.number);
|
||||||
|
}, 100);
|
||||||
|
},
|
||||||
|
emitInput() {
|
||||||
|
this.$emit("input", this.number);
|
||||||
|
},
|
||||||
|
reduce() {
|
||||||
|
if (this.number > this.min) {
|
||||||
|
this.number--;
|
||||||
|
this.emitInput();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
add() {
|
||||||
|
if (this.number < this.max) {
|
||||||
|
this.number++;
|
||||||
|
this.$emit("input", this.number);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted(){
|
||||||
|
this.number = this.modelValue;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep .number-box .el-input__inner {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icon-add {
|
||||||
|
color: #1890ff;
|
||||||
|
font-size: 22px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icon-remove {
|
||||||
|
border: 1px solid #d8d8d8;
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border-radius: 50%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: "";
|
||||||
|
display: block;
|
||||||
|
width: 10px;
|
||||||
|
height: 1px;
|
||||||
|
background: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,10 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog title="退菜" width="410px" :visible.sync="show" @close="reset">
|
<el-dialog title="退菜" width="410px" :visible.sync="show" @close="reset">
|
||||||
<div>
|
<div class="flex u-row-between u-p-b-20 border-bottom">
|
||||||
|
<span>退菜数量</span>
|
||||||
|
<div class="u-flex">
|
||||||
|
<number-box v-model="number" :min="1" :max="2"></number-box>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="u-m-t-10 u-font-12 color-999">
|
||||||
|
菜品已点数量 2 份
|
||||||
|
</div>
|
||||||
|
<div class="u-m-t-26">
|
||||||
<div><span>退菜原因</span> <span class="color-red">*</span></div>
|
<div><span>退菜原因</span> <span class="color-red">*</span></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="u-flex u-flex-wrap tags">
|
<div class="u-flex u-flex-wrap tags ">
|
||||||
<div
|
<div
|
||||||
class="tag"
|
class="tag"
|
||||||
v-for="(tag, index) in tags"
|
v-for="(tag, index) in tags"
|
||||||
@@ -23,9 +32,7 @@
|
|||||||
></el-input>
|
></el-input>
|
||||||
</div>
|
</div>
|
||||||
<div class="u-m-t-20">
|
<div class="u-m-t-20">
|
||||||
<el-checkbox v-model="isPrint"
|
<el-checkbox v-model="isPrint">打印退菜单</el-checkbox>
|
||||||
>打印退菜单</el-checkbox
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<div slot="footer">
|
<div slot="footer">
|
||||||
<el-button size="medium" @click="close"> 取消 </el-button>
|
<el-button size="medium" @click="close"> 取消 </el-button>
|
||||||
@@ -34,20 +41,35 @@
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import numberBox from './number-box.vue';
|
||||||
export default {
|
export default {
|
||||||
|
components:{numberBox},
|
||||||
|
props:{
|
||||||
|
goods:{
|
||||||
|
type:Object,
|
||||||
|
default:()=>{
|
||||||
|
return{}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isPrint:false,
|
number:1,
|
||||||
|
isPrint: false,
|
||||||
tagSel: -1,
|
tagSel: -1,
|
||||||
show: false,
|
show: false,
|
||||||
tags: [{label:"不想要了",checked:false} ,{label:"食材不足",checked:false} ,{label:"等待时间过长",checked:false}],
|
tags: [
|
||||||
|
{ label: "不想要了", checked: false },
|
||||||
|
{ label: "食材不足", checked: false },
|
||||||
|
{ label: "等待时间过长", checked: false },
|
||||||
|
],
|
||||||
note: "",
|
note: "",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
changeSel(item) {
|
changeSel(item) {
|
||||||
item.checked = !item.checked ;
|
item.checked = !item.checked;
|
||||||
},
|
},
|
||||||
reset() {
|
reset() {
|
||||||
this.note = "";
|
this.note = "";
|
||||||
@@ -68,7 +90,13 @@ export default {
|
|||||||
this.show = false;
|
this.show = false;
|
||||||
},
|
},
|
||||||
confirm() {
|
confirm() {
|
||||||
this.$emit("confirm", this.note);
|
const selTag=this.tags.filter(item=>item.checked).map(item=>item.label).join(",")
|
||||||
|
const note=selTag+(this.note.length>0?","+this.note:"");
|
||||||
|
console.log(note)
|
||||||
|
if(!note){
|
||||||
|
return this.$message.error("请输入退菜原因");
|
||||||
|
}
|
||||||
|
this.$emit("confirm", {note:note,num:this.number});
|
||||||
this.close();
|
this.close();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -4,9 +4,67 @@
|
|||||||
<div class="bg-fff">
|
<div class="bg-fff">
|
||||||
<div class="flex head row-between flex-y-center u-m-l-20">
|
<div class="flex head row-between flex-y-center u-m-l-20">
|
||||||
<div class="flex" style="width: 500px">
|
<div class="flex" style="width: 500px">
|
||||||
<div class="el-dialog__title" style="margin-right: 10px">
|
<div class="u-font-16 color-333 font-bold" style="margin-right: 10px">
|
||||||
{{ title }}
|
{{ title }}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="choose-user flex u-m-l-24">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
v-if="vipUser.id === ''"
|
||||||
|
@click="refChooseUserOpen"
|
||||||
|
>选择用户</el-button
|
||||||
|
>
|
||||||
|
<template v-else>
|
||||||
|
<div class="flex cur-pointer" @click="refChooseUserOpen">
|
||||||
|
<img
|
||||||
|
v-if="vipUser.headImg"
|
||||||
|
class="headimg"
|
||||||
|
:src="vipUser.headImg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
<div v-else class="headimg flex flex-x-y-center">
|
||||||
|
<i class="el-icon-user"></i>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="ft-13 color-000">{{ vipUser.nickName }}</div>
|
||||||
|
<div style="margin-top: 2px" class="color-666 ft-12">
|
||||||
|
余额:{{ vipUser.amount }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<el-popover
|
||||||
|
placement="right"
|
||||||
|
width="333"
|
||||||
|
trigger="click"
|
||||||
|
v-model="tableShow"
|
||||||
|
>
|
||||||
|
<div style="max-height: 398px; overflow-y: scroll">
|
||||||
|
<div
|
||||||
|
class="u-flex u-row-between u-p-t-8 table-item u-p-b-8 u-p-r-30"
|
||||||
|
v-for="(item, index) in tableList"
|
||||||
|
:key="index"
|
||||||
|
@click="changeTable(item, index)"
|
||||||
|
>
|
||||||
|
<span> {{ item.name }}</span>
|
||||||
|
<span :style="{ color: status[item.status].type }">
|
||||||
|
{{
|
||||||
|
status[item.status] ? status[item.status].label : ""
|
||||||
|
}}</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="color-999 u-p-30 u-text-center"
|
||||||
|
v-if="!tableList.length"
|
||||||
|
>
|
||||||
|
无可用桌台
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tableId u-m-l-28" slot="reference">
|
||||||
|
{{ table ? "桌台号:" + table.name : "选择桌号" }}
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
<!-- 先付后付start -->
|
<!-- 先付后付start -->
|
||||||
<!-- <el-dropdown @command="changePostPay">
|
<!-- <el-dropdown @command="changePostPay">
|
||||||
<el-button plain type="primary" size="mini">
|
<el-button plain type="primary" size="mini">
|
||||||
@@ -18,9 +76,11 @@
|
|||||||
<el-dropdown-item :command="true">后付费</el-dropdown-item>
|
<el-dropdown-item :command="true">后付费</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown> -->
|
</el-dropdown> -->
|
||||||
<el-button plain type="primary" size="mini">
|
|
||||||
|
<!-- <el-button plain type="primary" size="mini">
|
||||||
{{ postPay ? "后付费" : "先付费" }}
|
{{ postPay ? "后付费" : "先付费" }}
|
||||||
</el-button>
|
</el-button> -->
|
||||||
|
|
||||||
<!-- 先付后付end -->
|
<!-- 先付后付end -->
|
||||||
<span
|
<span
|
||||||
@click="toggleFullScreen"
|
@click="toggleFullScreen"
|
||||||
@@ -64,6 +124,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-1">
|
<div class="flex flex-1">
|
||||||
|
<div class="flex-1"></div>
|
||||||
<div class="flex-1">
|
<div class="flex-1">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="goods.query.productId"
|
v-model="goods.query.productId"
|
||||||
@@ -75,7 +136,8 @@
|
|||||||
suffix-icon="el-icon-search"
|
suffix-icon="el-icon-search"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
|
||||||
|
<!-- <div
|
||||||
style="display: flex; justify-content: flex-end; margin-left: 10px"
|
style="display: flex; justify-content: flex-end; margin-left: 10px"
|
||||||
>
|
>
|
||||||
<div style="width: 100px; margin-left: 20px">
|
<div style="width: 100px; margin-left: 20px">
|
||||||
@@ -90,7 +152,7 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="head-container search-box flex row-between" v-if="false">
|
<div class="head-container search-box flex row-between" v-if="false">
|
||||||
@@ -123,10 +185,6 @@
|
|||||||
<div
|
<div
|
||||||
style="display: flex; justify-content: flex-end; margin-left: 10px"
|
style="display: flex; justify-content: flex-end; margin-left: 10px"
|
||||||
>
|
>
|
||||||
<!-- <el-button style="margin-right: 10px" type="primary" @click="getGoods"
|
|
||||||
>查询</el-button
|
|
||||||
>
|
|
||||||
<el-button @click="reset">重置</el-button> -->
|
|
||||||
<div style="width: 100px; margin-left: 20px">
|
<div style="width: 100px; margin-left: 20px">
|
||||||
<el-select v-model="layout.sel" placeholder="请选择">
|
<el-select v-model="layout.sel" placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
@@ -146,33 +204,6 @@
|
|||||||
<div class="order">
|
<div class="order">
|
||||||
<div class="relative u-flex u-flex-col u-row-between">
|
<div class="relative u-flex u-flex-col u-row-between">
|
||||||
<div class="w-full" style="padding-right: 14px">
|
<div class="w-full" style="padding-right: 14px">
|
||||||
<div class="choose-user flex u-m-l-20">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
v-if="vipUser.id === ''"
|
|
||||||
@click="refChooseUserOpen"
|
|
||||||
>选择用户</el-button
|
|
||||||
>
|
|
||||||
<template v-else>
|
|
||||||
<div class="flex cur-pointer" @click="refChooseUserOpen">
|
|
||||||
<img
|
|
||||||
v-if="vipUser.headImg"
|
|
||||||
class="headimg"
|
|
||||||
:src="vipUser.headImg"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
<div v-else class="headimg flex flex-x-y-center">
|
|
||||||
<i class="el-icon-user"></i>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="ft-13 color-000">{{ vipUser.nickName }}</div>
|
|
||||||
<div style="margin-top: 2px" class="color-666 ft-12">
|
|
||||||
余额:{{ vipUser.amount }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
<div class="u-m-l-20 u-p-b-10 meal_box">
|
<div class="u-m-l-20 u-p-b-10 meal_box">
|
||||||
<el-button-group>
|
<el-button-group>
|
||||||
<el-button
|
<el-button
|
||||||
@@ -187,34 +218,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="flex row-between table-list u-m-l-20">
|
<div class="flex row-between table-list u-m-l-20">
|
||||||
<!-- <div class="tableId" @click="chooseTableOpen"> -->
|
<!-- <div class="tableId" @click="chooseTableOpen"> -->
|
||||||
<el-popover
|
|
||||||
placement="right"
|
|
||||||
width="333"
|
|
||||||
trigger="click"
|
|
||||||
v-model="tableShow"
|
|
||||||
>
|
|
||||||
<div style="max-height: 398px; overflow-y: scroll">
|
|
||||||
<div
|
|
||||||
class="u-flex u-row-between u-p-t-8 table-item u-p-b-8 u-p-r-30"
|
|
||||||
v-for="(item, index) in tableList"
|
|
||||||
:key="index"
|
|
||||||
@click="changeTable(item, index)"
|
|
||||||
>
|
|
||||||
<span> {{ item.name }}</span>
|
|
||||||
<span :style="{ color: status[item.status].type }">
|
|
||||||
{{
|
|
||||||
status[item.status] ? status[item.status].label : ""
|
|
||||||
}}</span
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<div class="color-999 u-p-30 u-text-center" v-if="!tableList.length" >
|
|
||||||
无可用桌台
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="tableId" slot="reference">
|
|
||||||
{{ table ? "桌台号:" + table.name : "桌台号/取餐号" }}
|
|
||||||
</div>
|
|
||||||
</el-popover>
|
|
||||||
|
|
||||||
<div class="u-flex">
|
<div class="u-flex">
|
||||||
<div class="u-p-r-14 border-r u-m-r-14">
|
<div class="u-p-r-14 border-r u-m-r-14">
|
||||||
@@ -263,6 +266,7 @@
|
|||||||
@changeOrderNumber="changeOrderNumber"
|
@changeOrderNumber="changeOrderNumber"
|
||||||
@cartGoodsNumberInput="cartGoodsNumberInput"
|
@cartGoodsNumberInput="cartGoodsNumberInput"
|
||||||
@cartGoodsNumberChange="cartGoodsNumberChange"
|
@cartGoodsNumberChange="cartGoodsNumberChange"
|
||||||
|
@editNote="refNoteShow(true)"
|
||||||
v-for="(item, index) in order.list"
|
v-for="(item, index) in order.list"
|
||||||
:key="index"
|
:key="index"
|
||||||
:index="index"
|
:index="index"
|
||||||
@@ -271,31 +275,32 @@
|
|||||||
:selIndex="order.selIndex"
|
:selIndex="order.selIndex"
|
||||||
></cart-item>
|
></cart-item>
|
||||||
</template>
|
</template>
|
||||||
<!-- 优惠菜品 -->
|
|
||||||
<div v-if="order.gift.list.length">
|
|
||||||
<div class="carts_list_title">以下是优惠菜品</div>
|
|
||||||
<template v-if="order.gift.list.length">
|
|
||||||
<cart-item
|
|
||||||
@itemClick="changeOrderSel"
|
|
||||||
@changeOrderNumber="changeOrderNumber"
|
|
||||||
@cartGoodsNumberInput="cartGoodsNumberInput"
|
|
||||||
@cartGoodsNumberChange="cartGoodsNumberChange"
|
|
||||||
v-for="(item, index) in order.list"
|
|
||||||
:key="index"
|
|
||||||
:index="index"
|
|
||||||
:item="item"
|
|
||||||
:selPlaceNum="order.selPlaceNum"
|
|
||||||
:selIndex="order.selIndex"
|
|
||||||
></cart-item>
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div v-if="!order.list.length">
|
<div v-if="!order.list.length">
|
||||||
<el-empty
|
<el-empty
|
||||||
:image-size="50"
|
:image-size="50"
|
||||||
description="点餐列表为空"
|
description="点餐列表为空"
|
||||||
></el-empty>
|
></el-empty>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 优惠菜品 -->
|
||||||
|
<div v-if="order.gift.list.length">
|
||||||
|
<div class="carts_list_title">以下是优惠菜品</div>
|
||||||
|
<template v-if="order.gift.list.length">
|
||||||
|
<cart-item
|
||||||
|
@itemClick="changeOrderSel"
|
||||||
|
@changeOrderNumber="changeOrderNumber"
|
||||||
|
@cartGoodsNumberInput="cartGoodsNumberInput"
|
||||||
|
@cartGoodsNumberChange="cartGoodsNumberChange"
|
||||||
|
v-for="(item, index) in order.gift.list"
|
||||||
|
:key="index"
|
||||||
|
:index="index"
|
||||||
|
:item="item"
|
||||||
|
:selPlaceNum="order.selPlaceNum"
|
||||||
|
:selIndex="order.selIndex"
|
||||||
|
></cart-item>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- 已下单菜品列表 -->
|
<!-- 已下单菜品列表 -->
|
||||||
<template v-if="order.old.list.length">
|
<template v-if="order.old.list.length">
|
||||||
@@ -364,9 +369,9 @@
|
|||||||
|
|
||||||
<div class="w-full bottom">
|
<div class="w-full bottom">
|
||||||
<div class="border-top">
|
<div class="border-top">
|
||||||
<div class="flex row-right youhui" v-if="giftLen">
|
<div class="flex row-right youhui" v-if="giftLen">
|
||||||
<span> 已优惠¥{{ allGiftMoney }} </span>
|
<span> 已优惠¥{{ allGiftMoney }} </span>
|
||||||
<i class="el-icon-arrow-right "></i>
|
<i class="el-icon-arrow-right"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex row-between">
|
<div class="flex row-between">
|
||||||
@@ -587,17 +592,17 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="goods">
|
<div class="goods">
|
||||||
<template v-if="!isCreateOrder">
|
<template v-if="!isCreateOrder">
|
||||||
<div class="flex categoty">
|
<div class="flex categoty u-col-center">
|
||||||
<div
|
<div
|
||||||
class="show_more_btn"
|
class="show_more_btn"
|
||||||
:class="{ showAll: category.showAll }"
|
:class="{ showAll: category.showAll }"
|
||||||
@click="toggleShowAll"
|
@click="toggleShowAll"
|
||||||
>
|
>
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<div class="flex">
|
<div class="flex showmore">
|
||||||
<i class="el-icon-arrow-down"></i>
|
<i class="el-icon-caret-bottom color-fff"></i>
|
||||||
</div>
|
</div>
|
||||||
<span>展开</span>
|
<span>{{ category.showAll ? "收起" : "展开" }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@@ -1205,7 +1210,7 @@ import {
|
|||||||
arrayContainsAll,
|
arrayContainsAll,
|
||||||
generateCombinations,
|
generateCombinations,
|
||||||
returnReverseVal,
|
returnReverseVal,
|
||||||
returnGiftArr
|
returnGiftArr,
|
||||||
} from "./util.js";
|
} from "./util.js";
|
||||||
import { $status } from "@/utils/table.js";
|
import { $status } from "@/utils/table.js";
|
||||||
export default {
|
export default {
|
||||||
@@ -1431,13 +1436,15 @@ export default {
|
|||||||
return a + b.number * b.salePrice;
|
return a + b.number * b.salePrice;
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
const oldPrice=this.order.old.list.reduce((a,b)=>{
|
const oldPrice = this.order.old.list.reduce((a, b) => {
|
||||||
const total=b.info.filter((v) => v.isGift === "true").reduce((prve, cur) => {
|
const total = b.info
|
||||||
|
.filter((v) => v.isGift === "true")
|
||||||
|
.reduce((prve, cur) => {
|
||||||
return prve + cur.number * cur.salePrice;
|
return prve + cur.number * cur.salePrice;
|
||||||
},0)
|
}, 0);
|
||||||
return a+total
|
return a + total;
|
||||||
},0)
|
}, 0);
|
||||||
return (nowprice+oldPrice).toFixed(2);
|
return (nowprice + oldPrice).toFixed(2);
|
||||||
},
|
},
|
||||||
allPackMoney() {
|
allPackMoney() {
|
||||||
let n = 0;
|
let n = 0;
|
||||||
@@ -1448,26 +1455,28 @@ export default {
|
|||||||
return a + b.packFee * 1;
|
return a + b.packFee * 1;
|
||||||
}, 0);
|
}, 0);
|
||||||
const oldPrice = this.order.old.list.reduce((a, b) => {
|
const oldPrice = this.order.old.list.reduce((a, b) => {
|
||||||
const bPrice= b.info.filter((v) => v.isPack === "true").reduce((prve, cur) => {
|
const bPrice = b.info
|
||||||
n += cur.number * 1;
|
.filter((v) => v.isPack === "true")
|
||||||
return prve + cur.packFee * 1;
|
.reduce((prve, cur) => {
|
||||||
}, 0);
|
n += cur.number * 1;
|
||||||
return a + bPrice;
|
return prve + cur.packFee * 1;
|
||||||
}, 0);
|
}, 0);
|
||||||
|
return a + bPrice;
|
||||||
|
}, 0);
|
||||||
|
|
||||||
const total = (nowPrice + oldPrice).toFixed(2);
|
const total = (nowPrice + oldPrice).toFixed(2);
|
||||||
this.order.packFee.totalAmount = total;
|
this.order.packFee.totalAmount = total;
|
||||||
this.order.packFee.totalNumber = n;
|
this.order.packFee.totalNumber = n;
|
||||||
return total;
|
return total;
|
||||||
},
|
},
|
||||||
giftLen() {
|
giftLen() {
|
||||||
const nowlen=this.order.list.filter((v) => v.isGift === "true").length
|
const nowlen = this.order.list.filter((v) => v.isGift === "true").length;
|
||||||
const oldlen=this.order.old.list.reduce((prve,cur)=>{
|
const oldlen = this.order.old.list.reduce((prve, cur) => {
|
||||||
const arr=cur.info.filter((v) => v.isGift === "true")
|
const arr = cur.info.filter((v) => v.isGift === "true");
|
||||||
prve.push(...arr)
|
prve.push(...arr);
|
||||||
return prve
|
return prve;
|
||||||
},[]).length
|
}, []).length;
|
||||||
return nowlen+oldlen;
|
return nowlen + oldlen;
|
||||||
},
|
},
|
||||||
isSku() {
|
isSku() {
|
||||||
if (this.order.selIndex < 0 || this.order.list.length <= 0) {
|
if (this.order.selIndex < 0 || this.order.list.length <= 0) {
|
||||||
@@ -1687,7 +1696,7 @@ export default {
|
|||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
this.$set(this.order.list, this.order.selIndex, {
|
this.$set(this.order.list, this.order.selIndex, {
|
||||||
...res,
|
...res,
|
||||||
specSnap: item.specSnap,
|
specSnap: item.specSnap || res.skuName,
|
||||||
number: this.order.number,
|
number: this.order.number,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -1948,13 +1957,15 @@ export default {
|
|||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
},
|
},
|
||||||
//退菜
|
//退菜
|
||||||
async refReturnCartConfirm() {
|
async refReturnCartConfirm(e) {
|
||||||
const res = await $returnCart({
|
const res = await $returnCart({
|
||||||
|
...e,
|
||||||
cartId: this.order.selGoods.id,
|
cartId: this.order.selGoods.id,
|
||||||
tableId: this.table.tableId,
|
tableId: this.table.tableId,
|
||||||
});
|
});
|
||||||
this.order.selGoods.status = "return";
|
this.order.selGoods.status = "return";
|
||||||
this.order.old.selIndex = -1;
|
this.order.old.selIndex = -1;
|
||||||
|
this.getCart()
|
||||||
console.log(this.order.selGoods);
|
console.log(this.order.selGoods);
|
||||||
},
|
},
|
||||||
// 台桌列表
|
// 台桌列表
|
||||||
@@ -2102,7 +2113,10 @@ export default {
|
|||||||
note: note,
|
note: note,
|
||||||
num: cart.number, // 0会删除此商品
|
num: cart.number, // 0会删除此商品
|
||||||
});
|
});
|
||||||
this.$set(this.order.list, this.order.selIndex, res);
|
this.$set(this.order.list, this.order.selIndex, {
|
||||||
|
...res,
|
||||||
|
specSnap: res.skuName,
|
||||||
|
});
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: "更新成功",
|
title: "更新成功",
|
||||||
type: "success",
|
type: "success",
|
||||||
@@ -2202,6 +2216,14 @@ export default {
|
|||||||
console.log(this.order.orderId);
|
console.log(this.order.orderId);
|
||||||
let res = "";
|
let res = "";
|
||||||
try {
|
try {
|
||||||
|
const seatFee = await $choseCount({
|
||||||
|
masterId: this.masterId,
|
||||||
|
tableId: this.table.tableId,
|
||||||
|
num: this.perpole,
|
||||||
|
});
|
||||||
|
this.order.seatFee = seatFee;
|
||||||
|
|
||||||
|
this.order.seatFee = res;
|
||||||
res = await $createOrder({
|
res = await $createOrder({
|
||||||
masterId: this.order.masterId || this.masterId,
|
masterId: this.order.masterId || this.masterId,
|
||||||
vipUserId: this.vipUser.id,
|
vipUserId: this.vipUser.id,
|
||||||
@@ -2877,16 +2899,16 @@ export default {
|
|||||||
},
|
},
|
||||||
//设置购物车数据
|
//设置购物车数据
|
||||||
setCart(res) {
|
setCart(res) {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
this.order.seatFee = res.seatFee ? res.seatFee : this.order.seatFee;
|
this.order.seatFee = res.seatFee ? res.seatFee : this.order.seatFee;
|
||||||
this.perpole = res.seatFee ? res.seatFee.totalNumber : 1;
|
this.perpole = res.seatFee ? res.seatFee.totalNumber : 1;
|
||||||
const nowCart = res.records.find((v) => v.placeNum == 0);
|
const nowCart = res.records.find((v) => v.placeNum == 0);
|
||||||
|
// this.order.list = nowCart ? nowCart.info.filter(v=>v.isGift!=='true') : [];
|
||||||
this.order.list = nowCart ? nowCart.info : [];
|
this.order.list = nowCart ? nowCart.info : [];
|
||||||
const oldCart = res.records.filter((v) => v.placeNum != 0);
|
const oldCart = res.records.filter((v) => v.placeNum != 0);
|
||||||
this.order.old.list = oldCart ? oldCart : [];
|
this.order.old.list = oldCart ? oldCart : [];
|
||||||
this.order.gift.list=returnGiftArr(res.records)
|
// this.order.gift.list = returnGiftArr(res.records);
|
||||||
console.log( this.order.old.list);
|
console.log(this.order.old.list);
|
||||||
|
|
||||||
},
|
},
|
||||||
//获取购物车数据
|
//获取购物车数据
|
||||||
async getCart() {
|
async getCart() {
|
||||||
@@ -3405,7 +3427,7 @@ input[type="number"]::-webkit-outer-spin-button {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.tableId {
|
.tableId {
|
||||||
padding: 9px 15px;
|
padding: 8px 15px;
|
||||||
border: 1px solid #dcdfe6;
|
border: 1px solid #dcdfe6;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
@@ -3599,7 +3621,7 @@ input[type="number"]::-webkit-outer-spin-button {
|
|||||||
|
|
||||||
.show_more_btn {
|
.show_more_btn {
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
color: #1890ff;
|
color: #333;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -3615,12 +3637,21 @@ input[type="number"]::-webkit-outer-spin-button {
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.el-icon-arrow-down {
|
.showmore {
|
||||||
transition: all 0.2s;
|
transition: all 0.2s;
|
||||||
|
margin-right: 8px;
|
||||||
|
width: 21px;
|
||||||
|
height: 21px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: #3f9eff;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
&.showAll {
|
||||||
&.showAll .el-icon-arrow-down {
|
.showmore {
|
||||||
transform: rotate(180deg);
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3843,7 +3874,7 @@ input[type="number"]::-webkit-outer-spin-button {
|
|||||||
|
|
||||||
.list {
|
.list {
|
||||||
width: 352px;
|
width: 352px;
|
||||||
padding: 12px 12px 0 0;
|
padding: 0 12px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.controls {
|
.controls {
|
||||||
@@ -3875,70 +3906,6 @@ input[type="number"]::-webkit-outer-spin-button {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.order-item {
|
|
||||||
padding: 4px;
|
|
||||||
border-radius: 2px;
|
|
||||||
display: flex;
|
|
||||||
cursor: pointer;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
background-color: rgba(0, 0, 0, 0);
|
|
||||||
transition: all 0.3s;
|
|
||||||
overflow: visible;
|
|
||||||
.pack {
|
|
||||||
right: 100%;
|
|
||||||
width: 18px;
|
|
||||||
height: 18px;
|
|
||||||
background: #35ac6a;
|
|
||||||
border-radius: 4px 0 4px 0;
|
|
||||||
font-size: 12px;
|
|
||||||
color: #fff;
|
|
||||||
text-align: center;
|
|
||||||
line-height: 17px;
|
|
||||||
z-index: 2;
|
|
||||||
}
|
|
||||||
&.active {
|
|
||||||
background-color: rgba(0, 0, 0, 0.04);
|
|
||||||
}
|
|
||||||
|
|
||||||
.total-price {
|
|
||||||
width: 94px;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.good-info {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
min-width: 70px;
|
|
||||||
|
|
||||||
.specSnap {
|
|
||||||
color: #999;
|
|
||||||
font-size: 12px;
|
|
||||||
margin-top: 3px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.name {
|
|
||||||
font-size: 13px;
|
|
||||||
text-align: left;
|
|
||||||
color: #212121;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.img {
|
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
|
||||||
position: relative;
|
|
||||||
margin-right: 10px;
|
|
||||||
|
|
||||||
img {
|
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.goods {
|
.goods {
|
||||||
@@ -3965,12 +3932,13 @@ input[type="number"]::-webkit-outer-spin-button {
|
|||||||
.timeSale {
|
.timeSale {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background-color: hsla(0, 0%, 99.2%, 0.5);
|
background-color: rgb(245, 245, 245, 0.6);
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
line-height: 16px;
|
line-height: 16px;
|
||||||
padding: 2px 10px;
|
padding: 3px 10px;
|
||||||
margin-top: 2px;
|
margin-top: 4px;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
.sell-out {
|
.sell-out {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
Reference in New Issue
Block a user