update 订单

This commit is contained in:
qijq 2025-08-05 11:56:55 +08:00
parent 2cea3d2187
commit 9d9745e6c2
14 changed files with 2802 additions and 1886 deletions

View File

@ -72,7 +72,7 @@ export function GetSalesReturnOrderDetails(params) {
} }
/** /**
* 退货订单不通过 * 退货订单拒绝退款
* @author Seven * @author Seven
* @data 2025-3-28 * @data 2025-3-28
* @param { * @param {
@ -93,7 +93,7 @@ export function GetSalesReturnOrderNoPass(params) {
} }
/** /**
* 退货订单不通过 * 退货订单同意退款
* @author Seven * @author Seven
* @data 2025-3-28 * @data 2025-3-28
* @param { * @param {
@ -124,6 +124,26 @@ export function GetInitiativeOrderRefund(params) {
}); });
} }
/**
* 催单
* @author Seven
* @data 2025-3-28
* @param {
* order_id : "DD-20241206-13"
* }
* @returns { }
* @see https://mall.gpxscs.cn/api/admin/shop/shop-order-info/picking/completed
*/
export function GetExpediteSFOrder(params) {
return http({
url: "/shop/sf-express/reminder-order",
method: "post",
params,
baseURL: config.apiMobile,
});
}
/** /**
* 拣货完成 * 拣货完成
* @author Seven * @author Seven

View File

@ -1,85 +1,108 @@
<template> <template>
<view class="tui-tabs-view" <view
:class="[isFixed ? 'tui-tabs-fixed' : 'tui-tabs-relative', unlined ? 'tui-unlined' : '']" :style="{ class="tui-tabs-view"
:class="[
isFixed ? 'tui-tabs-fixed' : 'tui-tabs-relative',
unlined ? 'tui-unlined' : '',
]"
:style="{
width: tabsWidth + 'px', width: tabsWidth + 'px',
height: height + 'rpx', height: height + 'rpx',
padding: `0 ${padding}rpx`, padding: `0 ${padding}rpx`,
background: backgroundColor, background: backgroundColor,
top: isFixed ? top + 'px' : 'auto', top: isFixed ? top + 'px' : 'auto',
zIndex: isFixed ? zIndex : 'auto' zIndex: isFixed ? zIndex : 'auto',
}" v-if="tabsWidth>0"> }"
<view v-for="(item, index) in tabs" :key="index" :class="['tui-tabs-item', { 'tui__tab_current': currentTab==index}]" v-if="tabsWidth > 0"
:style="{ width: getItemWidth,height: height + 'rpx' }" @tap.stop="swichTabs(index)"> >
<view class="tui-tabs-title" :class="{'tui-tabs-disabled': item.disabled }" :style="{ <view
v-for="(item, index) in tabs"
:key="index"
:class="['tui-tabs-item', { tui__tab_current: currentTab == index }]"
:style="{ width: getItemWidth, height: height + 'rpx' }"
@tap.stop="swichTabs(index)"
>
<view
class="tui-tabs-title"
:class="{ 'tui-tabs-disabled': item.disabled }"
:style="{
color: currentTab == index ? getSelectedColor : color, color: currentTab == index ? getSelectedColor : color,
fontSize: size + 'rpx', fontSize: size + 'rpx',
fontWeight: bold && currentTab == index ? 'bold' : 'normal',transform:`scale(${currentTab == index?scale:1})` fontWeight: bold && currentTab == index ? 'bold' : 'normal',
}"> transform: `scale(${currentTab == index ? scale : 1})`,
}"
>
{{ item[field] }} {{ item[field] }}
<view :class="[item.isDot ? 'tui-badge__dot' : 'tui-tabs__badge']" <view
:class="[item.isDot ? 'tui-badge__dot' : 'tui-tabs__badge']"
:style="{ color: badgeColor, backgroundColor: getBadgeBgColor }" :style="{ color: badgeColor, backgroundColor: getBadgeBgColor }"
v-if="item[badgeField] || item.isDot"> v-if="item[badgeField] || item.isDot"
{{ item.isDot ? '' : item[badgeField] }} >
{{ item.isDot ? "" : item[badgeField] }}
</view> </view>
</view> </view>
</view> </view>
<view v-if="isSlider" class="tui-tabs-slider" :style="{ <view
v-if="isSlider"
class="tui-tabs-slider"
:style="{
transform: 'translateX(' + scrollLeft + 'px)', transform: 'translateX(' + scrollLeft + 'px)',
width: sliderWidth + 'rpx', width: sliderWidth + 'rpx',
height: sliderHeight + 'rpx', height: sliderHeight + 'rpx',
borderRadius: sliderRadius, borderRadius: sliderRadius,
bottom: bottom, bottom: bottom,
background: getSliderBgColor, background: getSliderBgColor,
marginBottom: bottom == '50%' ? '-' + sliderHeight / 2 + 'rpx' : 0 marginBottom: bottom == '50%' ? '-' + sliderHeight / 2 + 'rpx' : 0,
}"></view> }"
></view>
</view> </view>
</template> </template>
<script> <script>
export default { export default {
name: 'tuiTabs', name: "tuiTabs",
emits: ['change'], emits: ["change"],
props: { props: {
// //
tabs: { tabs: {
type: Array, type: Array,
default() { default() {
return []; return [];
} },
}, },
// //
field: { field: {
type: String, type: String,
default: 'name' default: "name",
}, },
badgeField: { badgeField: {
type: String, type: String,
default: 'num' default: "num",
}, },
//tabs使windowWidthpx //tabs使windowWidthpx
width: { width: {
type: [Number, String], type: [Number, String],
default: 0 default: 0,
}, },
//rpx //rpx
height: { height: {
type: Number, type: Number,
default: 80 default: 80,
}, },
//rpx padding0 //rpx padding0
padding: { padding: {
type: Number, type: Number,
default: 30 default: 30,
}, },
// //
backgroundColor: { backgroundColor: {
type: String, type: String,
default: '#FFFFFF' default: "#FFFFFF",
}, },
// //
isFixed: { isFixed: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
//px //px
top: { top: {
@ -88,91 +111,91 @@
default: 0, default: 0,
// #endif // #endif
// #ifdef H5 // #ifdef H5
default: 44 default: 44,
// #endif // #endif
}, },
//线 //线
unlined: { unlined: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
// //
currentTab: { currentTab: {
type: Number, type: Number,
default: 0 default: 0,
}, },
isSlider: { isSlider: {
type: Boolean, type: Boolean,
default: true default: true,
}, },
// //
sliderWidth: { sliderWidth: {
type: Number, type: Number,
default: 68 default: 68,
}, },
// //
sliderHeight: { sliderHeight: {
type: Number, type: Number,
default: 6 default: 6,
}, },
// //
sliderBgColor: { sliderBgColor: {
type: String, type: String,
default: '' default: "",
}, },
sliderRadius: { sliderRadius: {
type: String, type: String,
default: '50rpx' default: "50rpx",
}, },
//bottom //bottom
bottom: { bottom: {
type: String, type: String,
default: '0' default: "0",
}, },
// //
itemWidth: { itemWidth: {
type: String, type: String,
default: '' default: "",
}, },
// //
color: { color: {
type: String, type: String,
default: '#666' default: "#666",
}, },
// //
selectedColor: { selectedColor: {
type: String, type: String,
default: '' default: "",
}, },
// //
size: { size: {
type: Number, type: Number,
default: 28 default: 28,
}, },
// //
bold: { bold: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
//2.3.0+ //2.3.0+
scale: { scale: {
type: [Number, String], type: [Number, String],
default: 1 default: 1,
}, },
// //
badgeColor: { badgeColor: {
type: String, type: String,
default: '#fff' default: "#fff",
}, },
// //
badgeBgColor: { badgeBgColor: {
type: String, type: String,
default: '' default: "",
}, },
zIndex: { zIndex: {
type: [Number, String], type: [Number, String],
default: 996 default: 996,
} },
}, },
watch: { watch: {
currentTab() { currentTab() {
@ -184,32 +207,44 @@
width(val) { width(val) {
this.tabsWidth = val; this.tabsWidth = val;
this.checkCor(); this.checkCor();
} },
}, },
computed: { computed: {
getItemWidth() { getItemWidth() {
let width = 100 / (this.tabs.length || 4) + '%' let width = 100 / (this.tabs.length || 4) + "%";
return this.itemWidth ? this.itemWidth : width return this.itemWidth ? this.itemWidth : width;
}, },
getSliderBgColor() { getSliderBgColor() {
return this.sliderBgColor || (uni && uni.$tui && uni.$tui.color.primary) || '#5677fc'; return (
this.sliderBgColor ||
(uni && uni.$tui && uni.$tui.color.primary) ||
"#5677fc"
);
}, },
getSelectedColor() { getSelectedColor() {
return this.selectedColor || (uni && uni.$tui && uni.$tui.color.primary) || '#5677fc'; return (
this.selectedColor ||
(uni && uni.$tui && uni.$tui.color.primary) ||
"#5677fc"
);
}, },
getBadgeBgColor() { getBadgeBgColor() {
return this.badgeBgColor || (uni && uni.$tui && uni.$tui.color.pink) || '#f74d54'; return (
} this.badgeBgColor ||
(uni && uni.$tui && uni.$tui.color.pink) ||
"#f74d54"
);
},
}, },
created() { created() {
// //
setTimeout(() => { setTimeout(() => {
uni.getSystemInfo({ uni.getSystemInfo({
success: res => { success: (res) => {
this.winWidth = res.windowWidth; this.winWidth = res.windowWidth;
this.tabsWidth = this.width == 0 ? this.winWidth : Number(this.width); this.tabsWidth = this.width == 0 ? this.winWidth : Number(this.width);
this.checkCor(); this.checkCor();
} },
}); });
}, 0); }, 0);
}, },
@ -217,7 +252,7 @@
return { return {
winWidth: 0, winWidth: 0,
tabsWidth: 0, tabsWidth: 0,
scrollLeft: 0 scrollLeft: 0,
}; };
}, },
methods: { methods: {
@ -225,7 +260,8 @@
let tabsNum = this.tabs.length; let tabsNum = this.tabs.length;
let padding = uni.upx2px(Number(this.padding)); let padding = uni.upx2px(Number(this.padding));
let width = this.tabsWidth - padding * 2; let width = this.tabsWidth - padding * 2;
let left = (width / tabsNum - uni.upx2px(Number(this.sliderWidth))) / 2 + padding; let left =
(width / tabsNum - uni.upx2px(Number(this.sliderWidth))) / 2 + padding;
let scrollLeft = left; let scrollLeft = left;
if (this.currentTab > 0) { if (this.currentTab > 0) {
scrollLeft = scrollLeft + (width / tabsNum) * this.currentTab; scrollLeft = scrollLeft + (width / tabsNum) * this.currentTab;
@ -239,13 +275,13 @@
if (this.currentTab == index) { if (this.currentTab == index) {
return false; return false;
} else { } else {
this.$emit('change', { this.$emit("change", {
index: Number(index), index: Number(index),
item: item item: item,
}); });
} }
} },
} },
}; };
</script> </script>
@ -269,7 +305,7 @@
.tui-tabs-fixed::before, .tui-tabs-fixed::before,
.tui-tabs-relative::before { .tui-tabs-relative::before {
content: ''; content: "";
position: absolute; position: absolute;
border-bottom: 1rpx solid #eaeef1; border-bottom: 1rpx solid #eaeef1;
-webkit-transform: scaleY(0.5) translateZ(0); -webkit-transform: scaleY(0.5) translateZ(0);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -234,7 +234,7 @@
> >
<view class="total-content"> <view class="total-content">
<view class="total-name"> <view class="total-name">
{{ specificationInfoList.length }}个规格 {{ specificationInfoList.length || 1 }}个规格
</view> </view>
<u-icon name="arrow-right"></u-icon> <u-icon name="arrow-right"></u-icon>
</view> </view>
@ -748,6 +748,9 @@ export default {
return item; // item return item; // item
}); });
if (this.specificationInfoList.length == 0) {
debugger;
}
console.log(this.specificationInfoList); console.log(this.specificationInfoList);
} catch (e) { } catch (e) {
console.error("解析productSpec失败:", e); console.error("解析productSpec失败:", e);

View File

@ -359,7 +359,6 @@ export default {
} else { } else {
this.loadingCommodityData = true; this.loadingCommodityData = true;
} }
if (this.isRefreshing) { if (this.isRefreshing) {
this.pageNum = 1; this.pageNum = 1;
this.isNoCommodityData = false; this.isNoCommodityData = false;

View File

@ -521,7 +521,7 @@ export default {
item_quantity: item.itemQuantity, item_quantity: item.itemQuantity,
item_quantity_2: "", item_quantity_2: "",
item_unit_price: item.product_unit_price, item_unit_price: item.product_unit_price,
item_quantity_2: "", item_unit_price_2: "",
}, },
]; ];
} }
@ -740,7 +740,7 @@ export default {
item_id: item.item_id, item_id: item.item_id,
product_id: item.product_id, product_id: item.product_id,
item_quantity: item.item_quantity_2 || item.item_quantity, item_quantity: item.item_quantity_2 || item.item_quantity,
item_unit_price: item.item_quantity_2 || item.item_unit_price, item_unit_price: item.item_unit_price_2 || item.item_unit_price,
}; };
}); });

View File

@ -342,6 +342,7 @@ export default {
productItem: {}, productItem: {},
isAdd: true, isAdd: true,
selectCommodisItems: [], selectCommodisItems: [],
inputSearch: "",
}; };
}, },
computed: {}, computed: {},
@ -409,7 +410,7 @@ export default {
// 1. // 1.
let productSpec = JSON.parse(JSON.stringify(item.product_spec)); let productSpec = JSON.parse(JSON.stringify(item.product_spec));
if (productSpec.length > 0) {
productSpec = JSON.parse(productSpec); productSpec = JSON.parse(productSpec);
if (!Array.isArray(productSpec)) { if (!Array.isArray(productSpec)) {
productSpec = [productSpec]; // productSpec = [productSpec]; //
@ -458,11 +459,22 @@ export default {
} }
}) })
.filter((item) => item != undefined); .filter((item) => item != undefined);
console.log(this.currSpecificationList); } else {
this.currSpecificationList = [
{
...item,
item_quantity: item.itemQuantity,
item_quantity_2: "",
item_unit_price: item.product_unit_price,
item_unit_price_2: "",
},
];
}
this.showBottomPopup = true; this.showBottomPopup = true;
console.log(this.currSpecificationList);
} }
}, },
async getProductList(inputSearch) { async getProductList() {
if (this.loadingDownCommodityData) { if (this.loadingDownCommodityData) {
this.loadingCommodityData = false; this.loadingCommodityData = false;
} else { } else {
@ -484,9 +496,9 @@ export default {
openCount: true, openCount: true,
}; };
if (inputSearch) { if (this.inputSearch) {
this.pageNum = 1; this.pageNum = 1;
params.product_name = inputSearch; params.product_name = this.inputSearch;
} }
let res = await GetProductList(params); let res = await GetProductList(params);
@ -660,30 +672,26 @@ export default {
}); });
}, },
async updateCommodityPriceAndQuantity(item) { async updateCommodityPriceAndQuantity(item) {
let params = {}; let params = this.currSpecificationList.map((item) => {
return {
item_id: item.item_id,
product_id: item.product_id,
item_quantity: item.item_quantity_2 || item.item_quantity,
item_unit_price: item.item_unit_price_2 || item.item_unit_price,
};
});
debugger;
let res = await UpdateCommodityPriceAndQuantity(params); let res = await UpdateCommodityPriceAndQuantity(params);
if (res && res.status) { if (res && res.status) {
this.showBottomPopup = false;
this.$refs.uToast.show({ this.$refs.uToast.show({
message: "修改成功", message: "修改成功",
type: "succeed", type: "succeed",
duration: 1000, duration: 1000,
}); });
// await this.getProductList();
let listParams = {
kind_id: "1201,1202,1203",
pageNum: 9999,
pageSize: this.pageSize,
product_state_id: this.currProductStateId,
category_id: this.currCategoryId,
openCount: true,
};
let result = await GetProductList(listParams);
if (result && result.status == 200) {
this.commodityList = res.data.items;
}
} }
this.showBottomPopup = false; this.showBottomPopup = false;
}, },

View File

@ -21,6 +21,10 @@
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
} }
.custom-icon-a-Frame3:before {
content: "\e60c";
}
.custom-icon-jianhao_fangxing:before { .custom-icon-jianhao_fangxing:before {
content: "\e728"; content: "\e728";
} }

View File

@ -52,8 +52,6 @@ service.interceptors.response.use(
// }); // });
} }
console.log(res);
if (res && res.code == 30) { if (res && res.code == 30) {
uni.$u.toast(`token已经过期需要重新登录`); uni.$u.toast(`token已经过期需要重新登录`);