|
@@ -42,17 +42,31 @@
|
|
|
|
|
|
|
|
const records = ref([]);
|
|
const records = ref([]);
|
|
|
const loading = ref(false);
|
|
const loading = ref(false);
|
|
|
|
|
+ // 添加缓存来存储已获取的数据
|
|
|
|
|
+ const dataCache = ref(new Map());
|
|
|
|
|
+ // 跟踪上一次请求的订单ID,防止重复请求
|
|
|
|
|
+ const lastRequestedOrderId = ref('');
|
|
|
|
|
|
|
|
//获取备注
|
|
//获取备注
|
|
|
- const getRemarks = async () => {
|
|
|
|
|
- if (!props.orderId || loading.value) return;
|
|
|
|
|
|
|
+ const getRemarks = async (orderId) => {
|
|
|
|
|
+ if (!orderId || loading.value) return;
|
|
|
|
|
+
|
|
|
|
|
+ // 如果缓存中已有该数据,直接使用缓存
|
|
|
|
|
+ if (dataCache.value.has(orderId)) {
|
|
|
|
|
+ records.value = dataCache.value.get(orderId);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 防止对同一订单ID重复请求
|
|
|
|
|
+ if (lastRequestedOrderId.value === orderId) return;
|
|
|
|
|
+ lastRequestedOrderId.value = orderId;
|
|
|
|
|
|
|
|
loading.value = true;
|
|
loading.value = true;
|
|
|
try {
|
|
try {
|
|
|
- const res = await request.get(
|
|
|
|
|
- `/order/remark/list?orderId=${props.orderId}`
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ const res = await request.get(`/order/remark/list?orderId=${orderId}`);
|
|
|
records.value = res.data.data;
|
|
records.value = res.data.data;
|
|
|
|
|
+ // 缓存结果
|
|
|
|
|
+ dataCache.value.set(orderId, res.data.data);
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
console.error('Failed to fetch remarks:', error);
|
|
console.error('Failed to fetch remarks:', error);
|
|
|
} finally {
|
|
} finally {
|
|
@@ -60,14 +74,7 @@
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- watch(
|
|
|
|
|
- () => props.orderId,
|
|
|
|
|
- (newVal, oldVal) => {
|
|
|
|
|
- if (newVal && newVal !== oldVal) {
|
|
|
|
|
- records.value = [];
|
|
|
|
|
- getRemarks();
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- { immediate: true }
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ defineExpose({
|
|
|
|
|
+ getRemarks
|
|
|
|
|
+ });
|
|
|
</script>
|
|
</script>
|