update 订单
This commit is contained in:
parent
2cea3d2187
commit
9d9745e6c2
@ -72,7 +72,7 @@ export function GetSalesReturnOrderDetails(params) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 退货订单不通过
|
||||
* 退货订单拒绝退款
|
||||
* @author Seven
|
||||
* @data 2025-3-28
|
||||
* @param {
|
||||
@ -93,7 +93,7 @@ export function GetSalesReturnOrderNoPass(params) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 退货订单不通过
|
||||
* 退货订单同意退款
|
||||
* @author Seven
|
||||
* @data 2025-3-28
|
||||
* @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
|
||||
|
||||
@ -1,85 +1,108 @@
|
||||
<template>
|
||||
<view class="tui-tabs-view"
|
||||
:class="[isFixed ? 'tui-tabs-fixed' : 'tui-tabs-relative', unlined ? 'tui-unlined' : '']" :style="{
|
||||
<view
|
||||
class="tui-tabs-view"
|
||||
:class="[
|
||||
isFixed ? 'tui-tabs-fixed' : 'tui-tabs-relative',
|
||||
unlined ? 'tui-unlined' : '',
|
||||
]"
|
||||
:style="{
|
||||
width: tabsWidth + 'px',
|
||||
height: height + 'rpx',
|
||||
padding: `0 ${padding}rpx`,
|
||||
background: backgroundColor,
|
||||
top: isFixed ? top + 'px' : '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}]"
|
||||
:style="{ width: getItemWidth,height: height + 'rpx' }" @tap.stop="swichTabs(index)">
|
||||
<view class="tui-tabs-title" :class="{'tui-tabs-disabled': item.disabled }" :style="{
|
||||
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 }]"
|
||||
: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,
|
||||
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] }}
|
||||
<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 }"
|
||||
v-if="item[badgeField] || item.isDot">
|
||||
{{ item.isDot ? '' : item[badgeField] }}
|
||||
v-if="item[badgeField] || item.isDot"
|
||||
>
|
||||
{{ item.isDot ? "" : item[badgeField] }}
|
||||
</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)',
|
||||
width: sliderWidth + 'rpx',
|
||||
height: sliderHeight + 'rpx',
|
||||
borderRadius: sliderRadius,
|
||||
bottom: bottom,
|
||||
background: getSliderBgColor,
|
||||
marginBottom: bottom == '50%' ? '-' + sliderHeight / 2 + 'rpx' : 0
|
||||
}"></view>
|
||||
marginBottom: bottom == '50%' ? '-' + sliderHeight / 2 + 'rpx' : 0,
|
||||
}"
|
||||
></view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'tuiTabs',
|
||||
emits: ['change'],
|
||||
name: "tuiTabs",
|
||||
emits: ["change"],
|
||||
props: {
|
||||
//标签页
|
||||
tabs: {
|
||||
type: Array,
|
||||
default() {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
},
|
||||
//显示文本字段名称
|
||||
field: {
|
||||
type: String,
|
||||
default: 'name'
|
||||
default: "name",
|
||||
},
|
||||
badgeField: {
|
||||
type: String,
|
||||
default: 'num'
|
||||
default: "num",
|
||||
},
|
||||
//tabs宽度,不传值则默认使用windowWidth,单位px
|
||||
width: {
|
||||
type: [Number, String],
|
||||
default: 0
|
||||
default: 0,
|
||||
},
|
||||
//rpx
|
||||
height: {
|
||||
type: Number,
|
||||
default: 80
|
||||
default: 80,
|
||||
},
|
||||
//rpx 只对左右padding起作用,上下为0
|
||||
padding: {
|
||||
type: Number,
|
||||
default: 30
|
||||
default: 30,
|
||||
},
|
||||
//背景色
|
||||
backgroundColor: {
|
||||
type: String,
|
||||
default: '#FFFFFF'
|
||||
default: "#FFFFFF",
|
||||
},
|
||||
//是否固定
|
||||
isFixed: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
default: false,
|
||||
},
|
||||
//px
|
||||
top: {
|
||||
@ -88,91 +111,91 @@
|
||||
default: 0,
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
default: 44
|
||||
default: 44,
|
||||
// #endif
|
||||
},
|
||||
//是否去掉底部线条
|
||||
unlined: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
default: false,
|
||||
},
|
||||
//当前选项卡
|
||||
currentTab: {
|
||||
type: Number,
|
||||
default: 0
|
||||
default: 0,
|
||||
},
|
||||
isSlider: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
default: true,
|
||||
},
|
||||
//滑块宽度
|
||||
sliderWidth: {
|
||||
type: Number,
|
||||
default: 68
|
||||
default: 68,
|
||||
},
|
||||
//滑块高度
|
||||
sliderHeight: {
|
||||
type: Number,
|
||||
default: 6
|
||||
default: 6,
|
||||
},
|
||||
//滑块背景颜色
|
||||
sliderBgColor: {
|
||||
type: String,
|
||||
default: ''
|
||||
default: "",
|
||||
},
|
||||
sliderRadius: {
|
||||
type: String,
|
||||
default: '50rpx'
|
||||
default: "50rpx",
|
||||
},
|
||||
//滑块bottom
|
||||
bottom: {
|
||||
type: String,
|
||||
default: '0'
|
||||
default: "0",
|
||||
},
|
||||
//标签页宽度
|
||||
itemWidth: {
|
||||
type: String,
|
||||
default: ''
|
||||
default: "",
|
||||
},
|
||||
//字体颜色
|
||||
color: {
|
||||
type: String,
|
||||
default: '#666'
|
||||
default: "#666",
|
||||
},
|
||||
//选中后字体颜色
|
||||
selectedColor: {
|
||||
type: String,
|
||||
default: ''
|
||||
default: "",
|
||||
},
|
||||
//字体大小
|
||||
size: {
|
||||
type: Number,
|
||||
default: 28
|
||||
default: 28,
|
||||
},
|
||||
//选中后 是否加粗 ,未选中则无效
|
||||
bold: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
default: false,
|
||||
},
|
||||
//2.3.0+
|
||||
scale: {
|
||||
type: [Number, String],
|
||||
default: 1
|
||||
default: 1,
|
||||
},
|
||||
//角标字体颜色
|
||||
badgeColor: {
|
||||
type: String,
|
||||
default: '#fff'
|
||||
default: "#fff",
|
||||
},
|
||||
//角标背景颜色
|
||||
badgeBgColor: {
|
||||
type: String,
|
||||
default: ''
|
||||
default: "",
|
||||
},
|
||||
zIndex: {
|
||||
type: [Number, String],
|
||||
default: 996
|
||||
}
|
||||
default: 996,
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
currentTab() {
|
||||
@ -184,32 +207,44 @@
|
||||
width(val) {
|
||||
this.tabsWidth = val;
|
||||
this.checkCor();
|
||||
}
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
getItemWidth() {
|
||||
let width = 100 / (this.tabs.length || 4) + '%'
|
||||
return this.itemWidth ? this.itemWidth : width
|
||||
let width = 100 / (this.tabs.length || 4) + "%";
|
||||
return this.itemWidth ? this.itemWidth : width;
|
||||
},
|
||||
getSliderBgColor() {
|
||||
return this.sliderBgColor || (uni && uni.$tui && uni.$tui.color.primary) || '#5677fc';
|
||||
return (
|
||||
this.sliderBgColor ||
|
||||
(uni && uni.$tui && uni.$tui.color.primary) ||
|
||||
"#5677fc"
|
||||
);
|
||||
},
|
||||
getSelectedColor() {
|
||||
return this.selectedColor || (uni && uni.$tui && uni.$tui.color.primary) || '#5677fc';
|
||||
return (
|
||||
this.selectedColor ||
|
||||
(uni && uni.$tui && uni.$tui.color.primary) ||
|
||||
"#5677fc"
|
||||
);
|
||||
},
|
||||
getBadgeBgColor() {
|
||||
return this.badgeBgColor || (uni && uni.$tui && uni.$tui.color.pink) || '#f74d54';
|
||||
}
|
||||
return (
|
||||
this.badgeBgColor ||
|
||||
(uni && uni.$tui && uni.$tui.color.pink) ||
|
||||
"#f74d54"
|
||||
);
|
||||
},
|
||||
},
|
||||
created() {
|
||||
// 高度自适应
|
||||
setTimeout(() => {
|
||||
uni.getSystemInfo({
|
||||
success: res => {
|
||||
success: (res) => {
|
||||
this.winWidth = res.windowWidth;
|
||||
this.tabsWidth = this.width == 0 ? this.winWidth : Number(this.width);
|
||||
this.checkCor();
|
||||
}
|
||||
},
|
||||
});
|
||||
}, 0);
|
||||
},
|
||||
@ -217,7 +252,7 @@
|
||||
return {
|
||||
winWidth: 0,
|
||||
tabsWidth: 0,
|
||||
scrollLeft: 0
|
||||
scrollLeft: 0,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
@ -225,7 +260,8 @@
|
||||
let tabsNum = this.tabs.length;
|
||||
let padding = uni.upx2px(Number(this.padding));
|
||||
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;
|
||||
if (this.currentTab > 0) {
|
||||
scrollLeft = scrollLeft + (width / tabsNum) * this.currentTab;
|
||||
@ -239,13 +275,13 @@
|
||||
if (this.currentTab == index) {
|
||||
return false;
|
||||
} else {
|
||||
this.$emit('change', {
|
||||
this.$emit("change", {
|
||||
index: Number(index),
|
||||
item: item
|
||||
item: item,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -269,7 +305,7 @@
|
||||
|
||||
.tui-tabs-fixed::before,
|
||||
.tui-tabs-relative::before {
|
||||
content: '';
|
||||
content: "";
|
||||
position: absolute;
|
||||
border-bottom: 1rpx solid #eaeef1;
|
||||
-webkit-transform: scaleY(0.5) translateZ(0);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
1128
java-mall-app-shop-admin/pages/order/components/retrunOrderItem.vue
Normal file
1128
java-mall-app-shop-admin/pages/order/components/retrunOrderItem.vue
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -234,7 +234,7 @@
|
||||
>
|
||||
<view class="total-content">
|
||||
<view class="total-name">
|
||||
共{{ specificationInfoList.length }}个规格
|
||||
共{{ specificationInfoList.length || 1 }}个规格
|
||||
</view>
|
||||
<u-icon name="arrow-right"></u-icon>
|
||||
</view>
|
||||
@ -748,6 +748,9 @@ export default {
|
||||
return item; // 如果没有匹配项,返回原 item
|
||||
});
|
||||
|
||||
if (this.specificationInfoList.length == 0) {
|
||||
debugger;
|
||||
}
|
||||
console.log(this.specificationInfoList);
|
||||
} catch (e) {
|
||||
console.error("解析productSpec失败:", e);
|
||||
|
||||
@ -359,7 +359,6 @@ export default {
|
||||
} else {
|
||||
this.loadingCommodityData = true;
|
||||
}
|
||||
|
||||
if (this.isRefreshing) {
|
||||
this.pageNum = 1;
|
||||
this.isNoCommodityData = false;
|
||||
|
||||
@ -521,7 +521,7 @@ export default {
|
||||
item_quantity: item.itemQuantity,
|
||||
item_quantity_2: "",
|
||||
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,
|
||||
product_id: item.product_id,
|
||||
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,
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
@ -342,6 +342,7 @@ export default {
|
||||
productItem: {},
|
||||
isAdd: true,
|
||||
selectCommodisItems: [],
|
||||
inputSearch: "",
|
||||
};
|
||||
},
|
||||
computed: {},
|
||||
@ -409,7 +410,7 @@ export default {
|
||||
|
||||
// 1. 解析产品规格模板
|
||||
let productSpec = JSON.parse(JSON.stringify(item.product_spec));
|
||||
|
||||
if (productSpec.length > 0) {
|
||||
productSpec = JSON.parse(productSpec);
|
||||
if (!Array.isArray(productSpec)) {
|
||||
productSpec = [productSpec]; // 确保是数组格式
|
||||
@ -458,11 +459,22 @@ export default {
|
||||
}
|
||||
})
|
||||
.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;
|
||||
console.log(this.currSpecificationList);
|
||||
}
|
||||
},
|
||||
async getProductList(inputSearch) {
|
||||
async getProductList() {
|
||||
if (this.loadingDownCommodityData) {
|
||||
this.loadingCommodityData = false;
|
||||
} else {
|
||||
@ -484,9 +496,9 @@ export default {
|
||||
openCount: true,
|
||||
};
|
||||
|
||||
if (inputSearch) {
|
||||
if (this.inputSearch) {
|
||||
this.pageNum = 1;
|
||||
params.product_name = inputSearch;
|
||||
params.product_name = this.inputSearch;
|
||||
}
|
||||
|
||||
let res = await GetProductList(params);
|
||||
@ -660,30 +672,26 @@ export default {
|
||||
});
|
||||
},
|
||||
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);
|
||||
if (res && res.status) {
|
||||
this.showBottomPopup = false;
|
||||
|
||||
this.$refs.uToast.show({
|
||||
message: "修改成功",
|
||||
type: "succeed",
|
||||
duration: 1000,
|
||||
});
|
||||
|
||||
// 静默更新数组
|
||||
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;
|
||||
}
|
||||
await this.getProductList();
|
||||
}
|
||||
this.showBottomPopup = false;
|
||||
},
|
||||
|
||||
@ -21,6 +21,10 @@
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.custom-icon-a-Frame3:before {
|
||||
content: "\e60c";
|
||||
}
|
||||
|
||||
.custom-icon-jianhao_fangxing:before {
|
||||
content: "\e728";
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -52,8 +52,6 @@ service.interceptors.response.use(
|
||||
// });
|
||||
}
|
||||
|
||||
console.log(res);
|
||||
|
||||
if (res && res.code == 30) {
|
||||
uni.$u.toast(`token已经过期需要重新登录`);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user