Commit 688623c7 authored by 罗超's avatar 罗超

1

parent 25a4877a
......@@ -9,7 +9,7 @@
</view>
<view class="goodsInfoBox">
<view class="goodsName"
>测试商品ssadfdsdddddddddddddddddddddddddddddddddddddddddddddddddd啛啛喳喳吃错错错错错错错错错错错dd</view
>测试商品</view
>
<view class="price">¥0.01</view>
<view class="flex-between surplus">
......
......@@ -46,49 +46,51 @@
<text>(含运费¥{{ data.FreightMoney.toFixed(2) }})</text>
</view>
<view class="btnBox">
<button class="btn" @click="modal = true" v-if="orderType === 1">
备注
<button class="btn" @click="modal = true">备注</button>
<button class="btn" v-if="data.OrderStatus === 1" @click="Offpayment">
线下付款
</button>
<button
class="btn"
v-if="orderType === 1 && data.OrderStatus === 6"
@click="pending(2)"
>
<button class="btn" v-if="data.OrderStatus === 6" @click="pending(2)">
拒绝
</button>
<button class="btn" v-if="data.OrderStatus === 6" @click="pending(1)">
同意
</button>
<button
class="btn"
v-if="orderType === 1 && data.OrderStatus === 6"
@click="pending(1)"
v-if="data.OrderStatus === 2"
@click="jumpPage(`/pages/MallMange/sendGoods?OrderId=${data.OrderId}`)"
>
同意
</button>
<button class="btn" v-if="orderType === 1 && data.OrderStatus === 2" @click="jumpPage(`/pages/MallMange/sendGoods?OrderId=${data.OrderId}`)">
发货
</button>
<button class="btn" v-if="data.OrderStatus === 3" @click="ConfirmReceipt">
确认收货
</button>
<button
class="btn"
v-if="orderType === 1 && data.OrderStatus === 3"
@click="ConfirmReceipt"
v-if="data.OrderStatus === 3"
@click="
jumpPage(
`/pages/MallMange/sendGoods?OrderId=${data.OrderId}&modify=true`
)
"
>
确认收货
</button>
<button class="btn" v-if="orderType === 1 && data.OrderStatus === 3">
查看物流
</button>
<button class="btn" v-if="orderType === 1 && data.OrderStatus === 3">
修改物流
修改快递单号
</button>
<button
class="btn"
v-if="
orderType === 1 && (data.OrderStatus === 2 || data.OrderStatus === 1)
"
v-if="data.OrderStatus === 2 || data.OrderStatus === 1"
@click="OrderCancel"
>
强制取消
</button>
<button class="btn" v-if="orderType === 1 && (data.OrderStatus === 2)" @click="jumpPage(`/pages/MallMange/modifyAddress?OrderId=${data.OrderId}`)">
<button
class="btn"
v-if="data.OrderStatus === 2"
@click="
jumpPage(`/pages/MallMange/modifyAddress?OrderId=${data.OrderId}`)
"
>
修改地址
</button>
</view>
......@@ -143,9 +145,9 @@ export default {
};
},
methods: {
jumpPage(url){
jumpPage(url) {
uni.navigateTo({
url: url
url: url,
});
},
//打电话
......@@ -230,7 +232,7 @@ export default {
});
},
//待处理-->确认|取消
pending(type=1) {
pending(type = 1) {
this.pendModal = true;
this.pendMsg.OrderId = this.data.OrderId;
this.pendMsg.Type = type;
......@@ -238,7 +240,7 @@ export default {
},
// 待处理调用接口
pendingForm() {
this.apipost(
this.requestAdmin(
"/api/order/SetOrderApplyForCancelAudit",
this.pendMsg,
(res) => {
......@@ -254,11 +256,39 @@ export default {
}
);
},
//线下付款
Offpayment() {
let that = this;
uni.showModal({
title: "提示",
content: "确认转为线下付款,转后无法恢复!",
success: function (res) {
if (res.confirm) {
that.requestAdmin(
"/api/order/SetOrderOfflinePayment",
{ OrderId: that.data.OrderId },
(_res) => {
if (_res.resultCode === 1) {
console.log(269, _res);
uni.showToast({
title: "操作成功",
icon: "success",
duration: 2000,
});
that.$emit("update");
}
},
null
);
}
},
});
},
},
created() {
this.exitMsg.Remark = this.data?.Remark;
this.exitMsg.OrderId = this.data?.OrderId;
console.log(261,this.data)
console.log(261, this.data);
},
};
</script>
......
<template>
<view class="item">
<view class="flex-between orderNum">
<text>订单号:{{ data.ReOrderNo }}</text>
<text style="color: #446dfc">{{ data.ReOrderStatusName }}</text>
</view>
<view class="flex-between remarks" v-if="data.ReRemark">
备注:{{ data.ReRemark }}
</view>
<view class="consigneeInfo">
<text style="margin-right: 40rpx">{{ data.OrderModel.Consignee }}</text>
<text style="margin-right: 20rpx">{{ data.OrderModel.Mobile }}</text>
<view
class="flex-between"
style="color: #446dfc"
@click="call(data.Mobile)"
>
<u-icon name="phone-circle-o" style="margin-right: 10rpx"></u-icon>
联系收货人
</view>
</view>
<view class="flex-between goodsInfo">
<view class="goodsImg">
<image
:src="data.OrderDetailModel.CoverImagePath"
mode="aspectFill"
class="img"
/>
<text v-if="data.Type == 1" class="reType">退货退款</text>
<text v-if="data.Type == 2" class="reType">换货</text>
</view>
<view class="goodsBox">
<view class="goodsName">{{ data.OrderDetailModel.GoodsName }}</view>
<view class="weight"
>规格:{{
getSpecificationsStr(data.OrderDetailModel.SpecificationList)
}}</view
>
<view class="flex-between">
<text style="color: #808080">x{{ data.ReNumber }}</text>
<text>{{ data.Income }}</text>
</view>
</view>
</view>
<view class="priceBox">
<text>实付金额</text>
<text style="color: #111; margin: 0 4rpx; fond-size: 26rpx"
>{{ data.Income.toFixed(2) }}</text
>
</view>
<view class="priceBox">
<text>申请退款</text>
<text style="color: #111; margin: 0 4rpx; fond-size: 26rpx"
>{{ data.Refund.toFixed(2) }}</text
>
</view>
<view class="priceBox">
<text>实际退款</text>
<text style="color: #111; margin: 0 4rpx; fond-size: 26rpx"
>{{data.RefundActual!=null ? data.RefundActual.toFixed(2):0.00}}</text
>
</view>
<view class="btnBox">
<button class="btn" v-if="item.ReOrderStatus==1" @click="pending(2)">
拒绝
</button>
<button class="btn" v-if="item.ReOrderStatus==1" @click="pending(1)">
同意
</button>
</view>
<!-- 待处理 -->
<u-modal
v-model="pendModal"
:show-cancel-button="true"
@confirm="pendingForm"
contentSlot
title="备注"
>
<textarea class="textarea" v-model="pendMsg.Remark" />
</u-modal>
</view>
</template>
<script>
export default {
props: {
data: Object,
orderType: Number,
},
data() {
return {
modal: false,
exitMsg: {
OrderId: 0,
Type: 1,
Remark: "",
},
// 待处理
pendMsg: {
OrderId: 0,
Type: 1,
Remark: 0,
},
pendModal: false,
};
},
methods: {
jumpPage(url) {
uni.navigateTo({
url: url,
});
},
//打电话
call(num) {
uni.makePhoneCall({
phoneNumber: num,
});
},
getSpecificationsStr(arr = []) {
let str = arr
.map((e) => {
return e;
})
.toString();
return str;
},
//确认收货
ConfirmReceipt() {
let that = this;
uni.showModal({
title: "提示",
content: "是否确认收货?",
success: function (res) {
if (res.confirm) {
}
},
});
},
},
created() {
this.exitMsg.Remark = this.data?.Remark;
this.exitMsg.OrderId = this.data?.OrderId;
},
};
</script>
<style lang="scss" scoped>
.flex-between {
display: flex;
justify-content: space-between;
align-items: center;
}
.item {
width: 700rpx;
// height: 480rpx;
background-color: #fff;
box-sizing: border-box;
padding: 20rpx;
border-radius: 10rpx;
margin: 20rpx auto;
.orderNum {
font-size: 24rpx;
color: #111;
margin-bottom: 20rpx;
}
.remarks {
font-size: 24rpx;
color: #111;
margin-bottom: 20rpx;
}
.consigneeInfo {
width: 100%;
height: 70rpx;
display: flex;
align-items: center;
padding: 0 30rpx;
background-color: #f7f7f7;
font-size: 24rpx;
border-radius: 6rpx;
margin-bottom: 20rpx;
}
.goodsInfo {
margin-bottom: 30rpx;
}
.goodsImg {
width: 160rpx;
height: 160rpx;
border-radius: 6rpx;
overflow: hidden;
box-shadow: 0rpx 0rpx 10rpx 0px rgba(36, 36, 36, 0.2);
margin-right: 20rpx;
position: relative;
.img {
width: 100%;
height: 100%;
border-radius: 6rpx;
}
.reType {
position: absolute;
bottom: 0;
left: 0;
width: 160rpx;
height: 40rpx;
background-color: #446dfc;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
font-size: 22rpx;
}
}
.goodsBox {
width: 480rpx;
height: 160rpx;
font-size: 24rpx;
color: #333;
.goodsName {
height: 45%;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
word-break: break-all;
}
.weight {
height: 35%;
color: #808080;
}
}
.priceBox {
text-align: right;
color: #808080;
font-size: 24rpx;
margin-bottom: 30rpx;
}
.btnBox {
display: flex;
justify-content: flex-end;
align-items: center;
.btn {
// width: 90rpx;
height: 50rpx;
border-radius: 25rpx;
border: 2rpx solid #f7f7f7;
margin: 0 0 0 10rpx;
padding: 0 20rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 22rpx;
color: #111;
}
}
}
.input {
width: 80%;
height: 80rpx;
border-radius: 10rpx;
background-color: #f7f7f7;
padding: 0 30rpx;
font-size: 24rpx;
margin: 20rpx auto;
}
.textarea {
width: 80%;
// height: 80rpx;
border-radius: 10rpx;
background-color: #f7f7f7;
padding: 30rpx;
font-size: 24rpx;
margin: 20rpx auto;
}
</style>
\ No newline at end of file
......@@ -171,7 +171,18 @@
:style="{ height: '100%' }"
>
<view v-for="(item, index) in orderList" :key="index">
<orderItem :data="item" :orderType="orderType" @update="updateList" />
<orderItem
:data="item"
:orderType="orderType"
@update="updateList"
v-if="orderType === 1"
/>
<saleAfterOrderItem
:data="item"
:orderType="orderType"
@update="updateList"
v-if="orderType === 2"
/>
</view>
<u-loadmore
:status="status"
......@@ -194,10 +205,12 @@
<script>
import tabbar from "./components/tabbar.vue";
import orderItem from "./components/orderItem.vue";
import saleAfterOrderItem from "./components/saleAfterOrderItem.vue";
export default {
components: {
tabbar,
orderItem,
saleAfterOrderItem,
},
data() {
const date = new Date();
......@@ -328,58 +341,102 @@ export default {
methods: {
//筛选时间
confirm() {
if (Date.parse(this.msg.StartTime) > Date.parse(this.msg.EndTime)) {
uni.showToast({
title: "开始时间不能大于结束时间",
icon: "none",
});
return;
}
if (this.orderType === 1) {
if (Date.parse(this.msg.StartTime) > Date.parse(this.msg.EndTime)) {
uni.showToast({
title: "开始时间不能大于结束时间",
icon: "none",
});
return;
}
this.getList();
} else if (this.orderType === 2) {
if (Date.parse(this.msg2.StartTime) > Date.parse(this.msg2.EndTime)) {
uni.showToast({
title: "开始时间不能大于结束时间",
icon: "none",
});
return;
}
this.getList2();
}
},
changeTime(e, i) {
this.curIndex = i;
this.timeStr = e.name;
if (e.key === 1) {
this.msg.StartTime = "";
this.msg.EndTime = "";
} else if (e.key === 2) {
this.msg.StartTime = this.$utils.AddDay("", -0);
this.msg.EndTime = this.$utils.AddDay("", -0);
} else if (e.key === 3) {
this.msg.StartTime = this.$utils.AddDay("", -1);
this.msg.EndTime = this.$utils.AddDay("", -1);
} else if (e.key === 4) {
this.msg.StartTime = this.$utils.AddDay("", -7);
this.msg.EndTime = this.$utils.AddDay("", -0);
} else if (e.key === 5) {
this.msg.StartTime = this.$utils.AddDay("", -0);
this.msg.EndTime = this.$utils.AddDay("", -0);
if (this.orderType === 1) {
if (e.key === 1) {
this.msg.StartTime = "";
this.msg.EndTime = "";
} else if (e.key === 2) {
this.msg.StartTime = this.$utils.AddDay("", -0);
this.msg.EndTime = this.$utils.AddDay("", -0);
} else if (e.key === 3) {
this.msg.StartTime = this.$utils.AddDay("", -1);
this.msg.EndTime = this.$utils.AddDay("", -1);
} else if (e.key === 4) {
this.msg.StartTime = this.$utils.AddDay("", -7);
this.msg.EndTime = this.$utils.AddDay("", -0);
} else if (e.key === 5) {
this.msg.StartTime = this.$utils.AddDay("", -0);
this.msg.EndTime = this.$utils.AddDay("", -0);
}
} else if (this.orderType === 2) {
if (e.key === 1) {
this.msg2.StartTime = "";
this.msg2.EndTime = "";
} else if (e.key === 2) {
this.msg2.StartTime = this.$utils.AddDay("", -0);
this.msg2.EndTime = this.$utils.AddDay("", -0);
} else if (e.key === 3) {
this.msg2.StartTime = this.$utils.AddDay("", -1);
this.msg2.EndTime = this.$utils.AddDay("", -1);
} else if (e.key === 4) {
this.msg2.StartTime = this.$utils.AddDay("", -7);
this.msg2.EndTime = this.$utils.AddDay("", -0);
} else if (e.key === 5) {
this.msg2.StartTime = this.$utils.AddDay("", -0);
this.msg2.EndTime = this.$utils.AddDay("", -0);
}
}
},
//自定义开始时间
bindChangeS(e) {
const val = e.detail.value;
this.msg.StartTime =
this.years[val[0]] +
"-" +
this.months[val[1]] +
"-" +
this.days[val[2]];
if (this.orderType === 1) {
this.msg.StartTime =
this.years[val[0]] +
"-" +
this.months[val[1]] +
"-" +
this.days[val[2]];
} else if (this.orderType === 2) {
this.msg2.StartTime =
this.years[val[0]] +
"-" +
this.months[val[1]] +
"-" +
this.days[val[2]];
}
},
//自定义结束时间
bindChangeE(e) {
const val = e.detail.value;
this.msg.EndTime =
this.years[val[0]] +
"-" +
this.months[val[1]] +
"-" +
this.days[val[2]];
if (this.orderType === 1) {
this.msg.EndTime =
this.years[val[0]] +
"-" +
this.months[val[1]] +
"-" +
this.days[val[2]];
} else if (this.orderType === 2) {
this.msg2.EndTime =
this.years[val[0]] +
"-" +
this.months[val[1]] +
"-" +
this.days[val[2]];
}
},
changeTab(index) {
this.currentTab = index;
......@@ -451,6 +508,8 @@ export default {
},
changeOrderType(n) {
this.orderType = n;
this.curIndex = 0;
this.timeStr = this.timeArr[0].name;
if (this.orderType === 1) {
this.currentTab = 0;
this.msg.OrderStatus = 0;
......@@ -482,10 +541,9 @@ export default {
this.loading = true;
this.requestAdmin(
"/api/order/GetGoodsOrderAfterPageList",
this.msg,
this.msg2,
(res) => {
this.loading = false;
console.log(2, res);
if (res.resultCode == 1) {
this.page_count = res.data.pageCount;
if (this.page_count == 1) {
......
......@@ -7,7 +7,7 @@
>
</view>
<view class="goodsList">
<u-checkbox-group>
<u-checkbox-group :disabled="disabledGroup">
<u-checkbox
shape="circle"
v-for="(item, index) in orderData.DetailList"
......@@ -51,29 +51,72 @@
</u-radio-group>
</view>
</view>
<view class="logisticsItem">
<view class="itemLabel">快递公司</view>
<view class="itemCon">
<picker :range="ExpressList" range-key="Name" @change="bindExpress">
<view style="display: flex"
>{{ ExpressStr }}
<u-icon name="arrow" style="margin-left: 10rpx"></u-icon>
</view>
</picker>
<view v-if="fhMsg.Type === 1">
<view class="logisticsItem">
<view class="itemLabel"
><text style="color: #f56c6c; margin-right: 4rpx">*</text
>快递公司</view
>
<view class="itemCon">
<picker :range="ExpressList" range-key="Name" @change="bindExpress">
<view style="display: flex"
>{{ ExpressStr }}
<u-icon name="arrow" style="margin-left: 10rpx"></u-icon>
</view>
</picker>
</view>
</view>
<view class="logisticsItem">
<view class="itemLabel">收件人邮编</view>
<input
type="text"
v-model="fhMsg.PostCode"
class="input"
placeholder="请输入邮编"
/>
</view>
<view class="logisticsItem">
<view class="itemLabel"
><text style="color: #f56c6c; margin-right: 4rpx">*</text>
快递单号</view
>
<input
type="text"
v-model="fhMsg.ExpressNumber"
class="input"
placeholder="请输入单号"
/>
</view>
<view
class="logisticsItem"
style="min-height: 80rpx; height: auto; border: none"
>
<view class="itemLabel">商家留言</view>
<textarea
type="text"
auto-height
v-model="fhMsg.Remark"
class="input2"
placeholder="请输入留言"
/>
</view>
</view>
<view class="logisticsItem">
<view class="itemLabel">收件人邮编</view>
<input type="text" v-model="fhMsg.PostCode" class="input" placeholder="请输入邮编"/>
</view>
<view class="logisticsItem">
<view class="itemLabel">快递单号</view>
<input type="text" v-model="fhMsg.ExpressNumber" class="input" placeholder="请输入单号"/>
</view>
<view class="logisticsItem" style="min-height:80rpx;height:auto;border:none">
<view class="itemLabel">商家留言</view>
<textarea type="text" auto-height v-model="fhMsg.Remark" class="input2"/>
<view v-if="fhMsg.Type === 2">
<view
class="logisticsItem"
style="min-height: 80rpx; height: auto; border: none"
>
<view class="itemLabel">物流内容</view>
<textarea
type="text"
auto-height
v-model="fhMsg.Remark"
class="input2"
placeholder="请输入物流内容"
/>
</view>
</view>
<view class="comfirm" @click="comfirm"> 确认发货 </view>
</view>
</view>
</template>
......@@ -81,6 +124,7 @@
export default {
data() {
return {
title:"发货",
fhMsg: {
Id: 0,
OrderId: 0,
......@@ -96,6 +140,7 @@ export default {
kdShow: false,
ExpressList: [],
ExpressStr: "未选择",
disabledGroup: false,
};
},
methods: {
......@@ -112,7 +157,6 @@ export default {
e.checked = true;
this.fhMsg.OrderDetailIdList.push(e.Id);
});
console.log(this.orderData.DetailList);
}
);
},
......@@ -134,7 +178,6 @@ export default {
this.requestAdmin("/api/MallBase/GetExpressInfo", {}, (res) => {
if (res.resultCode == 1) {
this.ExpressList = res.data;
console.log("117", this.ExpressList);
}
});
},
......@@ -142,19 +185,122 @@ export default {
bindExpress(e) {
let index = parseInt(e.detail.value);
this.ExpressStr = this.ExpressList[index].Name;
this.fhMsg.ExpressId = this.ExpressList[index].Id;
console.log(133, e);
this.fhMsg.ExpressId = this.ExpressList[index].ID;
},
comfirm() {
console.log(133, this.fhMsg);
if (this.fhMsg.OrderDetailIdList.length == 0) {
uni.showToast({
title: "至少选择一项商品",
icon: "none",
});
return;
}
if (this.fhMsg.Type == 1) {
if (!this.fhMsg.ExpressId) {
uni.showToast({
title: "请选择快递公司",
icon: "none",
});
return;
}
if (!this.fhMsg.ExpressNumber) {
uni.showToast({
title: "请输入快递单号",
icon: "none",
});
return;
}
}
if (this.fhMsg.Type == 2) {
this.fhMsg.ExpressId = "";
this.fhMsg.PostCode = "";
this.fhMsg.ExpressNumber = "";
}
let pages = getCurrentPages(); // 当前页面
let beforePage = pages[pages.length - 2]; // 前一个页面
uni.showNavigationBarLoading();
this.requestAdmin(
"/api/order/SetOrderSendGoods",
this.fhMsg,
(res) => {
if (res.resultCode === 1) {
uni.showToast({
title: "操作成功",
icon: "success",
});
setTimeout(() => {
uni.navigateBack({
success: function () {
beforePage.onLoad(); // 执行前一个页面的created方法
},
});
}, 1000);
uni.hideNavigationBarLoading();
}
},
null
);
},
// 判断是否有多个物流
getOrderSend(OrderId) {
this.requestAdmin(
"/api/order/GetOrderSendGoodsExpressIdByOrderId",
{
OrderId: OrderId,
},
(res) => {
let Id = res.data;
if (res.resultCode == 1) {
this.requestAdmin(
"/api/order/GetOrderSendGoodsInfo",
{
OrderExpressId: Id,
},
(_res) => {
if (_res.resultCode == 1) {
let data = _res.data;
this.fhMsg = {
Id: Id,
OrderId: OrderId,
Type: data.Type,
ExpressId: data.ExpressId,
PostCode: data.PostCode,
ExpressNumber: data.ExpressNumber,
Remark: data.Remark,
OrderDetailIdList: [],
};
this.orderData.DetailList = data.DetailList;
let find = this.ExpressList.find((e) => {
return e.ID == data.ExpressId;
});
this.ExpressStr = find?.Name;
data.DetailList.map((x) => {
this.fhMsg.OrderDetailIdList.push(x.Id);
});
}
console.log(3, this.fhMsg);
}
);
}
}
);
},
},
onLoad(options) {
uni.setNavigationBarTitle({
title: "发货",
});
if (options.OrderId) {
this.fhMsg.OrderId = options?.OrderId;
this.getData();
if (options.modify) {
this.title="修改快递单号"
this.getOrderSend(options.OrderId);
this.disabledGroup = true;
}
}
this.getExpressInfo();
uni.setNavigationBarTitle({
title: this.title,
});
},
};
</script>
......@@ -236,13 +382,26 @@ export default {
width: 200rpx;
font-size: 24rpx;
}
.input{
.input {
text-align: right;
padding: 0 20rpx;
}
.input2{
text-align: right;
padding: 20rpx;
.input2 {
text-align: right;
padding: 20rpx;
}
}
}
.comfirm {
width: 600rpx;
height: 80rpx;
border-radius: 40rpx;
margin: 20rpx auto;
display: flex;
justify-content: center;
align-items: center;
color: #ffffff;
font-size: 26rpx;
background-color: #446dfc;
}
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment