Compare commits
2 Commits
649b4c201a
...
8f95b9733e
Author | SHA1 | Date |
---|---|---|
weipengfei | 8f95b9733e | |
weipengfei | 74d981c5bd |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -50,6 +50,8 @@ const form = ref({
|
|||
price: 0,
|
||||
uid: '',
|
||||
user_ship: '',
|
||||
village: null,
|
||||
brigade: null,
|
||||
});
|
||||
const cart_id = ref([]);
|
||||
const isRePay = ref(false);
|
||||
|
@ -109,6 +111,8 @@ const handleEnter = () => {
|
|||
userRechangeAmountApi({
|
||||
uid: form.value.uid,
|
||||
user_ship: form.value.user_ship,
|
||||
village: form.value.village,
|
||||
brigade: form.value.brigade,
|
||||
price: form.value.price,
|
||||
pay_type: pay_type,
|
||||
auth_code: input.value,
|
||||
|
@ -326,6 +330,8 @@ const cashBnt = () => {
|
|||
userRechangeAmountApi({
|
||||
uid: form.value.uid,
|
||||
user_ship: form.value.user_ship,
|
||||
village: form.value.village,
|
||||
brigade: form.value.brigade,
|
||||
price: form.value.price,
|
||||
pay_type: 17,
|
||||
})
|
||||
|
|
|
@ -88,7 +88,7 @@ defineExpose({
|
|||
</div>
|
||||
<div class="flex-between">
|
||||
<div class="mr-2">手机号: {{ item.mobile || item.account }}</div>
|
||||
<el-tag type="primary" v-if="item.user_ship != 1">{{ item.user_ship_name }}</el-tag>
|
||||
<el-tag type="primary" v-if="item.user_ship == 0 || item.user_ship == 4">{{ item.user_ship_name }}</el-tag>
|
||||
<el-tag type="success" v-else>{{ item.user_ship_name }}</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -67,6 +67,7 @@ const printReceipt = (content = "") => {
|
|||
|
||||
// 小程序订单-预打印
|
||||
const letPrintReceipt = (content = "") => {
|
||||
|
||||
console.log("预打印");
|
||||
let str = printTicket(content, true)
|
||||
console.log(str);
|
||||
|
@ -142,7 +143,7 @@ onUnmounted(() => {
|
|||
justify-content: center;
|
||||
cursor: pointer;
|
||||
">
|
||||
<el-icon color="#fff" size="18" @click="onRefresh">
|
||||
<el-icon color="#fff" size="25" @click="onRefresh">
|
||||
<Refresh />
|
||||
</el-icon>
|
||||
</div>
|
||||
|
|
|
@ -117,7 +117,9 @@ export const printTicket = (obj = {}, test = false) => {
|
|||
str += Esc.Size2(2) + Esc.Center() + Esc.boldFontOn() + obj.system_store_name + Esc.Size1() + "\n";
|
||||
str += Esc.fillLine(" ") + Esc.boldFontOff() + "\n";
|
||||
if (obj.shipping_type) {
|
||||
str += Esc.Left() + "核销码: " + Esc.boldFontOn() + obj.verify_code + Esc.boldFontOff() + (obj.reservation ? " (次日提)" : " ") + "\n";
|
||||
if(obj.is_writeoff == 1) str += Esc.Left() + "核销码: " + Esc.boldFontOn() + obj.verify_code + Esc.boldFontOff() + " (已核销)" + "\n";
|
||||
else if(obj.reservation == 1) str += Esc.Left() + "核销码: " + Esc.boldFontOn() + obj.verify_code + Esc.boldFontOff() + " (次日提)" + "\n";
|
||||
else str += Esc.Left() + "核销码: " + Esc.boldFontOn() + obj.verify_code + Esc.boldFontOff() + "\n";
|
||||
}
|
||||
str += Esc.Left() + "单号: " + obj.order_id + "\n";
|
||||
str += Esc.Left() + "下单时间: " + obj.create_time + "\n";
|
||||
|
|
|
@ -64,6 +64,9 @@ const getOrderList = (reload = false) => {
|
|||
})
|
||||
.catch((err) => {
|
||||
loading.value = false;
|
||||
ElMessage.error(err.msg||'没有找到该订单')
|
||||
orderList.value = [];
|
||||
mitt.emit("set-sale-order-detail", {});
|
||||
});
|
||||
} else {
|
||||
cashierinfoWriteoffListApi(where.value)
|
||||
|
|
|
@ -41,7 +41,7 @@ onMounted(() => {
|
|||
<div class="my-code" v-show="type == 1">
|
||||
<h2>订单核销</h2>
|
||||
<div class="box">
|
||||
<input ref="inputRef" v-model="code" placeholder="" class="input" @keyup.enter="handleEnterKey" />
|
||||
<input ref="inputRef" v-model="code" placeholder="请输入核销码" class="input" @keyup.enter="handleEnterKey" />
|
||||
<div class="btn" @click="handleEnterKey">查询</div>
|
||||
</div>
|
||||
<div class="to-list" @click="handleListed">
|
||||
|
|
|
@ -129,7 +129,12 @@ onUnmounted(() => {
|
|||
</div>
|
||||
<div class="header-input">
|
||||
<el-input v-model="where.order_id" placeholder="请输入订单编号" @keydown.enter="getOrderList(true)"
|
||||
@clear="getOrderList(true)" clearable>
|
||||
@clear="getOrderList(true)" >
|
||||
<template #suffix>
|
||||
<el-icon v-if="where.order_id != ''" size="18" @click="where.order_id = '';getOrderList(true)" style="cursor: pointer;margin-right: 0.5rem;">
|
||||
<CircleClose />
|
||||
</el-icon>
|
||||
</template>
|
||||
<template #append>
|
||||
<el-button type="primary" style="
|
||||
background-color: #1890ff;
|
||||
|
|
|
@ -238,13 +238,12 @@ onUnmounted(() => {
|
|||
>
|
||||
</div> -->
|
||||
</div>
|
||||
<!-- <div class="update-price">
|
||||
<div class="update-price">
|
||||
<el-switch v-model="is_storage" size="large" inline-prompt active-text="存货" inactive-text="不存" />
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="order-btn">
|
||||
<el-button class="btn" type="primary" @click="goPay" :disabled="list.length == 0">{{ "立即结账 (F9)"
|
||||
}}</el-button>
|
||||
<el-button class="btn" type="primary" @click="goPay" :disabled="list.length == 0">{{ "立即结账 (F9)" }}</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<price ref="priceRef" @changeAllPrice="changeAllPrice"></price>
|
||||
|
|
|
@ -27,7 +27,7 @@ const name = ref("");
|
|||
|
||||
const loadMore = () => {
|
||||
emit("loadMore", {
|
||||
store_name_code: name.value,
|
||||
store_name: name.value,
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -86,8 +86,14 @@ onUnmounted(() => {
|
|||
<div class="header-nav" :class="{ 'input-focus': isfocus }">
|
||||
<div class="nav-item-label">搜索 (Shift)</div>
|
||||
<div class="nav-item-input">
|
||||
<el-input v-model="name" placeholder=" 搜索商品名称/条形码或点击聚焦扫码, 按回车(Enter)搜索" clearable ref="codeRef"
|
||||
@focus="focus" @blur="blur" @keyup.enter="handleEnter" @clear="handleEnter" />
|
||||
<el-input v-model="name" placeholder="搜索商品名称/条形码或点击聚焦扫码, 按回车(Enter)搜索" ref="codeRef" @focus="focus"
|
||||
@blur="blur" @keyup.enter="handleEnter" @clear="handleEnter" style="font-size: 1rem;">
|
||||
<template #suffix>
|
||||
<el-icon v-if="name!=''" size="28" @click="name = ''" style="cursor: pointer;margin-right: 1rem;">
|
||||
<CircleClose />
|
||||
</el-icon>
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="nav-item-btn" @click="handleEnter">
|
||||
<el-button class="btn" type="primary"><el-icon>
|
||||
|
@ -288,7 +294,8 @@ onUnmounted(() => {
|
|||
justify-content: center;
|
||||
}
|
||||
}
|
||||
.no-stock-re{
|
||||
|
||||
.no-stock-re {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
@ -300,7 +307,7 @@ onUnmounted(() => {
|
|||
align-items: center;
|
||||
|
||||
div {
|
||||
background-color: rgba($color: #E6A23C, $alpha: 0.8);
|
||||
background-color: rgba($color: #1890FF, $alpha: 0.8);
|
||||
color: #fff;
|
||||
border-radius: 50%;
|
||||
width: 5rem;
|
||||
|
|
|
@ -43,11 +43,15 @@ const getStoreList = (data = {}, reload = false) => {
|
|||
...where.value,
|
||||
...data,
|
||||
};
|
||||
console.log("===", data, where.value);
|
||||
if (reload) {
|
||||
storeList.value = [];
|
||||
where.value.page_no = 1;
|
||||
loadEnd.value = false;
|
||||
}
|
||||
if(data.top_cate_id==='') {
|
||||
where.value.store_name = null;
|
||||
}
|
||||
loading.value = true;
|
||||
saleStoreListApi({
|
||||
...where.value,
|
||||
|
@ -60,11 +64,11 @@ const getStoreList = (data = {}, reload = false) => {
|
|||
if (res.data?.lists?.length < where.value.page_size) loadEnd.value = true;
|
||||
storeList.value = storeList.value.concat(res.data.lists);
|
||||
if (
|
||||
data.store_name_code &&
|
||||
data.store_name &&
|
||||
storeList.value.length == 1 &&
|
||||
isAllDigits(data.store_name_code)
|
||||
isAllDigits(data.store_name)
|
||||
) {
|
||||
shopRef.value.code = "";
|
||||
shopRef.value.name = "";
|
||||
shopRef.value.inputBlur();
|
||||
changeItem(storeList.value[0]);
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<script setup>
|
||||
import { ref, onMounted, onUnmounted } from "vue";
|
||||
import {
|
||||
orderListApi,
|
||||
orderStatusApi,
|
||||
orderLadingApi,
|
||||
cartListApi,
|
||||
saleOrderListApi,
|
||||
orderListApi,
|
||||
orderStatusApi,
|
||||
orderLadingApi,
|
||||
cartListApi,
|
||||
saleOrderListApi,
|
||||
} from "@/api/store.js";
|
||||
import { useUserStore } from "@/store/user.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
|
@ -15,48 +15,48 @@ import moment from "moment";
|
|||
|
||||
const userStore = useUserStore();
|
||||
const props = defineProps({
|
||||
isSystem: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
source: {
|
||||
type: Number,
|
||||
default: 1,
|
||||
},
|
||||
isSystem: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
source: {
|
||||
type: Number,
|
||||
default: 1,
|
||||
},
|
||||
});
|
||||
|
||||
const lists = ref([]);
|
||||
|
||||
const tabPosition = ref(1); // 1-全部, 2-未支付
|
||||
const changeTabPosition = (e) => {
|
||||
where.value.page_no = 1;
|
||||
loadEnd.value = false;
|
||||
loading.value = false;
|
||||
orderList.value = [];
|
||||
getOrderList(true);
|
||||
where.value.page_no = 1;
|
||||
loadEnd.value = false;
|
||||
loading.value = false;
|
||||
orderList.value = [];
|
||||
getOrderList(true);
|
||||
};
|
||||
|
||||
const payRef = ref(null);
|
||||
|
||||
const date = ref("");
|
||||
const changeDate = () => {
|
||||
where.value.start_time = moment(date.value[0]).format('YYYY-MM-DD 00:00:00');
|
||||
where.value.end_time = moment(date.value[1]).format('YYYY-MM-DD 23:59:59');
|
||||
getOrderList(true);
|
||||
where.value.start_time = moment(date.value[0]).format('YYYY-MM-DD 00:00:00');
|
||||
where.value.end_time = moment(date.value[1]).format('YYYY-MM-DD 23:59:59');
|
||||
getOrderList(true);
|
||||
};
|
||||
|
||||
const disabledDate = (time)=>{
|
||||
return time.getTime() > Date.now();
|
||||
const disabledDate = (time) => {
|
||||
return time.getTime() > Date.now();
|
||||
}
|
||||
|
||||
|
||||
const where = ref({
|
||||
page_no: 1,
|
||||
page_size: 20,
|
||||
order_id: "",
|
||||
start_time: "",
|
||||
end_time: "",
|
||||
is_sashier: 1, // 1-收银订单, 2-小程序订单
|
||||
page_no: 1,
|
||||
page_size: 20,
|
||||
order_id: "",
|
||||
start_time: "",
|
||||
end_time: "",
|
||||
is_sashier: 1, // 1-收银订单, 2-小程序订单
|
||||
});
|
||||
|
||||
const loading = ref(false);
|
||||
|
@ -66,32 +66,32 @@ const activeStore = ref(0);
|
|||
const loadEnd = ref(false);
|
||||
const orderList = ref([]);
|
||||
const getOrderList = (reload = false) => {
|
||||
if (reload) where.value.page_no = 1;
|
||||
else if (loadEnd.value || loading.value) return;
|
||||
loading.value = true;
|
||||
if (tabPosition.value == 1) where.value.paid = null;
|
||||
if (tabPosition.value == 2) where.value.paid = 0;
|
||||
saleOrderListApi(where.value)
|
||||
.then((res) => {
|
||||
if (reload) orderList.value = res.data.lists;
|
||||
else orderList.value = [...orderList.value, ...res.data.lists];
|
||||
if (where.value.page_no == 1 && orderList.value.length > 0) mitt.emit("set-sale-order-detail", orderList.value[0]);
|
||||
if (res.data.lists.length < where.value.page_size) loadEnd.value = true;
|
||||
else where.value.page_no++;
|
||||
activeStore.value = 0;
|
||||
console.log(where.value.page_no);
|
||||
total.value = res.data.count;
|
||||
loading.value = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
loadEnd.value = true;
|
||||
loading.value = false;
|
||||
});
|
||||
if (reload) where.value.page_no = 1;
|
||||
else if (loadEnd.value || loading.value) return;
|
||||
loading.value = true;
|
||||
if (tabPosition.value == 1) where.value.paid = null;
|
||||
if (tabPosition.value == 2) where.value.paid = 0;
|
||||
saleOrderListApi(where.value)
|
||||
.then((res) => {
|
||||
if (reload) orderList.value = res.data.lists;
|
||||
else orderList.value = [...orderList.value, ...res.data.lists];
|
||||
if (where.value.page_no == 1 && orderList.value.length > 0) mitt.emit("set-sale-order-detail", orderList.value[0]);
|
||||
if (res.data.lists.length < where.value.page_size) loadEnd.value = true;
|
||||
else where.value.page_no++;
|
||||
activeStore.value = 0;
|
||||
console.log(where.value.page_no);
|
||||
total.value = res.data.count;
|
||||
loading.value = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
loadEnd.value = true;
|
||||
loading.value = false;
|
||||
});
|
||||
};
|
||||
|
||||
const setForm = (item, index) => {
|
||||
activeStore.value = index;
|
||||
mitt.emit("set-sale-order-detail", item);
|
||||
activeStore.value = index;
|
||||
mitt.emit("set-sale-order-detail", item);
|
||||
};
|
||||
|
||||
defineExpose({
|
||||
|
@ -99,266 +99,254 @@ defineExpose({
|
|||
})
|
||||
|
||||
onMounted(() => {
|
||||
mitt.on("update-sale-order-detail", (item) => {
|
||||
console.log("===");
|
||||
orderList.value[activeStore.value].paid = 1;
|
||||
});
|
||||
mitt.on("update-sale-order-detail", (item) => {
|
||||
console.log("===");
|
||||
orderList.value[activeStore.value].paid = 1;
|
||||
});
|
||||
});
|
||||
onUnmounted(()=>{
|
||||
mitt.off("update-sale-order-detail");
|
||||
onUnmounted(() => {
|
||||
mitt.off("update-sale-order-detail");
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="my-order">
|
||||
<div class="header-nav">
|
||||
<div class="nav-item">
|
||||
{{ "收银订单" }}
|
||||
</div>
|
||||
<div class="nav-item-btn">
|
||||
<el-radio-group
|
||||
v-model="tabPosition"
|
||||
@change="changeTabPosition"
|
||||
size="small"
|
||||
>
|
||||
<el-radio-button :value="1">全部</el-radio-button>
|
||||
<el-radio-button :value="2">未支付</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-date-picker
|
||||
v-model="date"
|
||||
type="daterange"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
size="small"
|
||||
value-format="YYYY/MM/DD"
|
||||
:disabled-date="disabledDate"
|
||||
@change="changeDate"
|
||||
:clearable="false"
|
||||
style="width: 14rem; margin-left: 1rem"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header-input">
|
||||
<el-input
|
||||
v-model="where.order_id"
|
||||
placeholder="请输入订单编号"
|
||||
@keydown.enter="getOrderList(true)"
|
||||
@clear="getOrderList(true)"
|
||||
clearable
|
||||
>
|
||||
<template #append>
|
||||
<el-button
|
||||
type="primary"
|
||||
style="
|
||||
<div class="my-order">
|
||||
<div class="header-nav">
|
||||
<div class="nav-item">
|
||||
{{ "收银订单" }}
|
||||
</div>
|
||||
<div class="nav-item-btn">
|
||||
<el-radio-group v-model="tabPosition" @change="changeTabPosition" size="small">
|
||||
<el-radio-button :value="1">全部</el-radio-button>
|
||||
<el-radio-button :value="2">未支付</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-date-picker v-model="date" type="daterange" start-placeholder="开始时间" end-placeholder="结束时间"
|
||||
size="small" value-format="YYYY/MM/DD" :disabled-date="disabledDate" @change="changeDate"
|
||||
:clearable="false" style="width: 14rem; margin-left: 1rem" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="header-input">
|
||||
<el-input v-model="where.order_id" placeholder="请输入订单编号" @keydown.enter="getOrderList(true)"
|
||||
@clear="getOrderList(true)">
|
||||
<template #suffix>
|
||||
<el-icon v-if="where.order_id != ''" size="18" @click="where.order_id = '';getOrderList(true)" style="cursor: pointer;margin-right: 0.5rem;">
|
||||
<CircleClose />
|
||||
</el-icon>
|
||||
</template>
|
||||
<template #append>
|
||||
<el-button type="primary" style="
|
||||
background-color: #1890ff;
|
||||
color: #fff;
|
||||
border-radius: 0 0.315rem 0.315rem 0;
|
||||
"
|
||||
@click="getOrderList(true)"
|
||||
>搜索</el-button
|
||||
>
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
<div
|
||||
class="order-lists"
|
||||
v-loading="loading"
|
||||
v-infinite-scroll="getOrderList"
|
||||
:infinite-scroll-distance="300"
|
||||
:infinite-scroll-delay="500"
|
||||
style="overflow: auto"
|
||||
>
|
||||
<div
|
||||
class="item"
|
||||
:class="{ 'item-active': activeStore == index }"
|
||||
v-for="(item, index) in orderList"
|
||||
:key="index"
|
||||
@click="setForm(item, index)"
|
||||
>
|
||||
<div class="top">
|
||||
<div class="sn" :class="'cahier'">单号: {{ item.order_id }}</div>
|
||||
<div class="create-time">{{ item.pay_time }}</div>
|
||||
" @click="getOrderList(true)">搜索</el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="shop">
|
||||
<div class="left" v-if="item.product_info">
|
||||
<el-image
|
||||
v-for="(shop, imgkey) in item.product_info.slice(0, 5)"
|
||||
:key="imgkey"
|
||||
:src="shop.image"
|
||||
class="shop-img"
|
||||
></el-image>
|
||||
<div v-if="item.product_info.length == 1" class="shop-name">
|
||||
{{ item.product_info[0].store_name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="money">¥{{ item.pay_price }}</div>
|
||||
<div class="count">共{{ item.total_num }}款商品</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="pay">
|
||||
<div v-if="item.paid">
|
||||
{{ item.paid_name }}
|
||||
<spna v-if="item.pay_type_name">({{ item.pay_type_name }})</spna>
|
||||
<span v-else-if="item.pay_type == 9">(微信收款)</span>
|
||||
<span v-else-if="item.pay_type == 17">(现金支付)</span>
|
||||
<span v-else-if="item.pay_type == 13">(支付宝收款)</span>
|
||||
<span v-else-if="item.pay_type == 3">(余额支付)</span>
|
||||
<span v-else-if="item.pay_type == 1">(微信支付)</span>
|
||||
</div>
|
||||
<div v-else style="color: #ff4a00">{{ item.paid_name }}</div>
|
||||
</div>
|
||||
<!-- <div class="cashier" v-if="item.service_info">
|
||||
<div class="order-lists" v-loading="loading" v-infinite-scroll="getOrderList" :infinite-scroll-distance="300"
|
||||
:infinite-scroll-delay="500" style="overflow: auto">
|
||||
<div class="item" :class="{ 'item-active': activeStore == index }" v-for="(item, index) in orderList"
|
||||
:key="index" @click="setForm(item, index)">
|
||||
<div class="top">
|
||||
<div class="sn" :class="'cahier'">单号: {{ item.order_id }}</div>
|
||||
<div class="create-time">{{ item.pay_time }}</div>
|
||||
</div>
|
||||
<div class="shop">
|
||||
<div class="left" v-if="item.product_info">
|
||||
<el-image v-for="(shop, imgkey) in item.product_info.slice(0, 5)" :key="imgkey"
|
||||
:src="shop.image" class="shop-img"></el-image>
|
||||
<div v-if="item.product_info.length == 1" class="shop-name">
|
||||
{{ item.product_info[0].store_name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="money">¥{{ item.pay_price }}</div>
|
||||
<div class="count">共{{ item.total_num }}款商品</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="pay">
|
||||
<div v-if="item.paid">
|
||||
{{ item.paid_name }}
|
||||
<spna v-if="item.pay_type_name">({{ item.pay_type_name }})</spna>
|
||||
<span v-else-if="item.pay_type == 9">(微信收款)</span>
|
||||
<span v-else-if="item.pay_type == 17">(现金支付)</span>
|
||||
<span v-else-if="item.pay_type == 13">(支付宝收款)</span>
|
||||
<span v-else-if="item.pay_type == 3">(余额支付)</span>
|
||||
<span v-else-if="item.pay_type == 1">(微信支付)</span>
|
||||
</div>
|
||||
<div v-else style="color: #ff4a00">{{ item.paid_name }}</div>
|
||||
</div>
|
||||
<!-- <div class="cashier" v-if="item.service_info">
|
||||
收银员: {{ item.service_info.nickname }}
|
||||
</div>
|
||||
<div class="cashier" v-else>平台订单</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="loadEnd" class="load-end">没有更多了</div>
|
||||
<div v-if="loading" class="load-end">加载中...</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="loadEnd" class="load-end">没有更多了</div>
|
||||
<div v-if="loading" class="load-end">加载中...</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.my-order {
|
||||
border-radius: 1.2rem;
|
||||
height: 100%;
|
||||
background-color: #fff;
|
||||
width: 30rem;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
border-radius: 1.2rem;
|
||||
height: 100%;
|
||||
background-color: #fff;
|
||||
width: 30rem;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
|
||||
.header-nav {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
padding: 1rem;
|
||||
height: 3.5rem;
|
||||
.header-nav {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
padding: 1rem;
|
||||
height: 3.5rem;
|
||||
|
||||
span {
|
||||
color: #ff4a00;
|
||||
}
|
||||
.nav-item {
|
||||
font-weight: bold;
|
||||
}
|
||||
.nav-item-btn {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
.header-input {
|
||||
padding: 1rem;
|
||||
padding-top: 0;
|
||||
height: 2.5rem;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
.order-lists {
|
||||
height: calc(100vh - 100px - 10.2rem);
|
||||
overflow-y: auto;
|
||||
.item {
|
||||
padding: 1rem;
|
||||
border-bottom: 1px solid #eee;
|
||||
.top {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-end;
|
||||
.sn {
|
||||
font-weight: bold;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.cahier {
|
||||
&::before {
|
||||
content: "收银";
|
||||
font-weight: 400;
|
||||
font-size: 0.7rem;
|
||||
padding: 0.1rem 0.1rem;
|
||||
margin-right: 0.2rem;
|
||||
border: 1px solid #2ec479;
|
||||
color: #2ec479;
|
||||
border-radius: 0.187rem;
|
||||
}
|
||||
}
|
||||
.cahier2 {
|
||||
&::before {
|
||||
content: "平台";
|
||||
font-weight: 400;
|
||||
font-size: 0.7rem;
|
||||
padding: 0.1rem 0.1rem;
|
||||
margin-right: 0.2rem;
|
||||
border: 1px solid #ff4a00;
|
||||
span {
|
||||
color: #ff4a00;
|
||||
border-radius: 0.187rem;
|
||||
}
|
||||
}
|
||||
.create-time {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
}
|
||||
.shop {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.right {
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
.money {
|
||||
font-size: 1rem;
|
||||
color: #ff4a00;
|
||||
|
||||
.nav-item {
|
||||
font-weight: bold;
|
||||
}
|
||||
.count {
|
||||
font-size: 0.7rem;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
.left {
|
||||
height: 4.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.shop-img {
|
||||
width: 3.5rem;
|
||||
height: 3.5rem;
|
||||
border-radius: 0.3rem;
|
||||
margin-right: 0.4rem;
|
||||
}
|
||||
.shop-name {
|
||||
font-size: 0.9rem;
|
||||
color: #333;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
/* 将文本限制为三行 */
|
||||
-webkit-line-clamp: 3;
|
||||
}
|
||||
|
||||
.nav-item-btn {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
.bottom {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-size: 0.9rem;
|
||||
color: #777;
|
||||
.manage-btn {
|
||||
color: #fff;
|
||||
background-color: #e6a23c;
|
||||
border-radius: 0.2rem;
|
||||
padding: 0 0.2rem;
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
.item-active {
|
||||
background-color: #efefef;
|
||||
|
||||
.header-input {
|
||||
padding: 1rem;
|
||||
padding-top: 0;
|
||||
height: 2.5rem;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.order-lists {
|
||||
height: calc(100vh - 100px - 10.2rem);
|
||||
overflow-y: auto;
|
||||
|
||||
.item {
|
||||
padding: 1rem;
|
||||
border-bottom: 1px solid #eee;
|
||||
|
||||
.top {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-end;
|
||||
|
||||
.sn {
|
||||
font-weight: bold;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.cahier {
|
||||
&::before {
|
||||
content: "收银";
|
||||
font-weight: 400;
|
||||
font-size: 0.7rem;
|
||||
padding: 0.1rem 0.1rem;
|
||||
margin-right: 0.2rem;
|
||||
border: 1px solid #2ec479;
|
||||
color: #2ec479;
|
||||
border-radius: 0.187rem;
|
||||
}
|
||||
}
|
||||
|
||||
.cahier2 {
|
||||
&::before {
|
||||
content: "平台";
|
||||
font-weight: 400;
|
||||
font-size: 0.7rem;
|
||||
padding: 0.1rem 0.1rem;
|
||||
margin-right: 0.2rem;
|
||||
border: 1px solid #ff4a00;
|
||||
color: #ff4a00;
|
||||
border-radius: 0.187rem;
|
||||
}
|
||||
}
|
||||
|
||||
.create-time {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
}
|
||||
|
||||
.shop {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.right {
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
|
||||
.money {
|
||||
font-size: 1rem;
|
||||
color: #ff4a00;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.count {
|
||||
font-size: 0.7rem;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
|
||||
.left {
|
||||
height: 4.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.shop-img {
|
||||
width: 3.5rem;
|
||||
height: 3.5rem;
|
||||
border-radius: 0.3rem;
|
||||
margin-right: 0.4rem;
|
||||
}
|
||||
|
||||
.shop-name {
|
||||
font-size: 0.9rem;
|
||||
color: #333;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
/* 将文本限制为三行 */
|
||||
-webkit-line-clamp: 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-size: 0.9rem;
|
||||
color: #777;
|
||||
|
||||
.manage-btn {
|
||||
color: #fff;
|
||||
background-color: #e6a23c;
|
||||
border-radius: 0.2rem;
|
||||
padding: 0 0.2rem;
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item-active {
|
||||
background-color: #efefef;
|
||||
}
|
||||
}
|
||||
|
||||
.load-end {
|
||||
text-align: center;
|
||||
padding: 1rem;
|
||||
color: #333;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
}
|
||||
.load-end {
|
||||
text-align: center;
|
||||
padding: 1rem;
|
||||
color: #333;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -106,10 +106,33 @@ const getAddress = () => {
|
|||
userAddressDetailApi({
|
||||
uid: formData.value.id
|
||||
}).then(res => {
|
||||
if (res.data.village) {
|
||||
if (res.data?.village) {
|
||||
selectedValues.value = [res.data.city, res.data.area, res.data.street, res.data.village, +res.data.brigade];
|
||||
selectedEd.value = JSON.parse(JSON.stringify(selectedValues.value));
|
||||
addressInfo.value = Object.assign(addressInfo.value, res.data);
|
||||
addressInfo.value = res.data;
|
||||
}
|
||||
else {
|
||||
selectedValues.value = [];
|
||||
selectedEd.value = [];
|
||||
addressInfo.value = {
|
||||
id: '',
|
||||
province: '',
|
||||
city: '',
|
||||
area: '',
|
||||
street: '',
|
||||
brigade: ''
|
||||
}
|
||||
}
|
||||
}).catch(err=>{
|
||||
selectedValues.value = [];
|
||||
selectedEd.value = [];
|
||||
addressInfo.value = {
|
||||
id: '',
|
||||
province: '',
|
||||
city: '',
|
||||
area: '',
|
||||
street: '',
|
||||
brigade: ''
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -209,21 +232,31 @@ const updateAddress = async () => {
|
|||
...addressInfo.value,
|
||||
uid: formData.value.id
|
||||
}).then(res => {
|
||||
ElMessage.success('编辑成功')
|
||||
selectedEd.value = JSON.parse(JSON.stringify(selectedValues.value))
|
||||
ElMessage.success('编辑成功');
|
||||
isDisabled.value = true;
|
||||
})
|
||||
}).catch(err => {
|
||||
cancelUpdate();
|
||||
} )
|
||||
}
|
||||
|
||||
const cancelUpdate = () => {
|
||||
selectedValues.value = JSON.parse(JSON.stringify(selectedEd.value))
|
||||
if(selectedEd.value.length>0){
|
||||
addressInfo.value.city = selectedEd.value[0]
|
||||
addressInfo.value.area = selectedEd.value[1]
|
||||
addressInfo.value.street = selectedEd.value[2]
|
||||
addressInfo.value.village = selectedEd.value[3]
|
||||
addressInfo.value.brigade = selectedEd.value[4]
|
||||
}
|
||||
isDisabled.value = true;
|
||||
}
|
||||
|
||||
const isDisabled = ref(true);
|
||||
|
||||
const activeStore = ref(0);
|
||||
const activeStoreList = ref(["基本信息"]);
|
||||
// const activeStoreList = ref(["基本信息", "用户资产"]);
|
||||
// const activeStoreList = ref(["基本信息"]);
|
||||
const activeStoreList = ref(["基本信息", "用户资产"]);
|
||||
|
||||
const isOut = ref(false); // 是否为出库状态
|
||||
const productList = ref([]); // 商品列表
|
||||
|
@ -340,7 +373,9 @@ const shipRecharge = () => {
|
|||
data: {
|
||||
uid: formData.value.id,
|
||||
price: shipForm.value.money,
|
||||
user_ship: shipForm.value.user_ship
|
||||
user_ship: shipForm.value.user_ship,
|
||||
village: addressInfo.value.village,
|
||||
brigade: addressInfo.value.brigade
|
||||
}
|
||||
});
|
||||
payRef.value.drawer = true;
|
||||
|
@ -349,11 +384,12 @@ const shipRecharge = () => {
|
|||
})
|
||||
}
|
||||
const rechargeMoney = (type) => {
|
||||
if(selectedEd.value.length == 0) return ElMessage.error("请先选择用户地址");
|
||||
shipForm.value.type = type;
|
||||
if (type == 'add') {
|
||||
shipForm.value.user_ship = formData.value.user_ship;
|
||||
shipForm.value.user_ship_name = formData.value.user_ship_name;
|
||||
changeShip(shipForm.value.user_ship)
|
||||
changeShip(shipForm.value.user_ship);
|
||||
}
|
||||
dialogFormShip.value = true;
|
||||
}
|
||||
|
@ -368,8 +404,10 @@ onMounted(() => {
|
|||
data.phone = data.mobile + '';
|
||||
delete data.mobile;
|
||||
formData.value = Object.assign(res, data);
|
||||
console.log(formData.value);
|
||||
// console.log(formData.value);
|
||||
})
|
||||
selectedValues.value = [];
|
||||
selectedEd.value = [];
|
||||
getAddress();
|
||||
initProduct(true);
|
||||
shipForm.value = {
|
||||
|
@ -505,7 +543,7 @@ onUnmounted(() => {
|
|||
<div class="info-item-title">用户地址:</div>
|
||||
<el-cascader :key="formData.id" style="flex: 1;" v-model="selectedValues" :options="options"
|
||||
:props="props" :load="loadOptions" class="w-full" :disabled="isDisabled" />
|
||||
<el-button v-if="isDisabled" type="primary" style="margin-left: 1rem;"
|
||||
<el-button v-if="isDisabled && !selectedEd.length" type="primary" style="margin-left: 1rem;"
|
||||
@click="isDisabled = false">修改</el-button>
|
||||
<el-button v-if="!isDisabled" type="primary" style="margin-left: 1rem;"
|
||||
@click="updateAddress">确认</el-button>
|
||||
|
|
|
@ -225,7 +225,12 @@ onUnmounted(() => {
|
|||
</div>
|
||||
<div class="header-input">
|
||||
<el-input v-model="where.mobile" placeholder="搜索手机号" @keydown.enter="getOrderList(true)"
|
||||
@clear="getOrderList(true)" clearable>
|
||||
@clear="getOrderList(true)" >
|
||||
<template #suffix>
|
||||
<el-icon v-if="where.mobile != ''" size="18" @click="where.mobile = '';getOrderList(true)" style="cursor: pointer;margin-right: 0.5rem;">
|
||||
<CircleClose />
|
||||
</el-icon>
|
||||
</template>
|
||||
<template #append>
|
||||
<el-button type="primary" style="
|
||||
background-color: #1890ff;
|
||||
|
|
Loading…
Reference in New Issue