Commit 6d252b59 by linjinhong

fix:发版过渡1.0.34版本

parent 97f00b64
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
"name": "JomallProductionAssistant", "name": "JomallProductionAssistant",
"productName": "JomallProductionAssistant", "productName": "JomallProductionAssistant",
"description": "", "description": "",
"version": "1.0.33", "version": "1.0.34",
"private": true, "private": true,
"scripts": { "scripts": {
"serve": "vue-cli-service serve", "serve": "vue-cli-service serve",
......
...@@ -66,7 +66,7 @@ function getLatestOrderByPrefixNewId(targetNewId, type) { ...@@ -66,7 +66,7 @@ function getLatestOrderByPrefixNewId(targetNewId, type) {
matchedKeyWithSuffix.push({ matchedKeyWithSuffix.push({
cacheKey: cacheKey, cacheKey: cacheKey,
suffix: suffix, suffix: suffix,
order: order, order: order
}); });
} }
}); });
...@@ -80,14 +80,14 @@ function getLatestOrderByPrefixNewId(targetNewId, type) { ...@@ -80,14 +80,14 @@ function getLatestOrderByPrefixNewId(targetNewId, type) {
// ===== 核心新增:根据type过滤,只保留满足条件的条目 ===== // ===== 核心新增:根据type过滤,只保留满足条件的条目 =====
if (type) { if (type) {
// 传入type时才执行过滤,提高灵活性 // 传入type时才执行过滤,提高灵活性
matchedKeyWithSuffix = matchedKeyWithSuffix.filter((item) => { matchedKeyWithSuffix = matchedKeyWithSuffix.filter(item => {
const { order } = item; const { order } = item;
// 1. 容错:判断saveImgList是否存在且为数组,避免报错 // 1. 容错:判断saveImgList是否存在且为数组,避免报错
if (!order.saveImgList || !Array.isArray(order.saveImgList)) { if (!order.saveImgList || !Array.isArray(order.saveImgList)) {
return false; return false;
} }
// 2. 查找是否存在:title===type 且 power===false // 2. 查找是否存在:title===type 且 power===false
const matchImgItem = order.saveImgList.find((imgItem) => { const matchImgItem = order.saveImgList.find(imgItem => {
return imgItem.title === type && imgItem.power === false; return imgItem.title === type && imgItem.power === false;
}); });
// 3. 存在则保留该条目,否则过滤掉 // 3. 存在则保留该条目,否则过滤掉
...@@ -95,7 +95,7 @@ function getLatestOrderByPrefixNewId(targetNewId, type) { ...@@ -95,7 +95,7 @@ function getLatestOrderByPrefixNewId(targetNewId, type) {
}); });
if (matchedKeyWithSuffix.length === 0) { if (matchedKeyWithSuffix.length === 0) {
console.log( console.log(
`未找到以${targetNewId}为前缀、且type=${type}(power=false)的订单`, `未找到以${targetNewId}为前缀、且type=${type}(power=false)的订单`
); );
return null; // 直接返回null,终止后续逻辑,避免报错 return null; // 直接返回null,终止后续逻辑,避免报错
} }
...@@ -111,11 +111,11 @@ function getLatestOrderByPrefixNewId(targetNewId, type) { ...@@ -111,11 +111,11 @@ function getLatestOrderByPrefixNewId(targetNewId, type) {
} }
console.log( console.log(
`找到以${targetNewId}为前缀的最新订单,cacheKey:${latestItem.cacheKey},后缀:${latestItem.suffix}`, `找到以${targetNewId}为前缀的最新订单,cacheKey:${latestItem.cacheKey},后缀:${latestItem.suffix}`
); );
return { return {
cacheKey: latestItem.cacheKey, cacheKey: latestItem.cacheKey,
order: latestItem.order, order: latestItem.order
}; };
} }
...@@ -128,12 +128,12 @@ function refreshOrderCache() { ...@@ -128,12 +128,12 @@ function refreshOrderCache() {
const newCacheMap = new Map(); const newCacheMap = new Map();
// 重新构建缓存key:前缀-数字,保持格式一致 // 重新构建缓存key:前缀-数字,保持格式一致
currentArray.forEach((item) => { currentArray.forEach(item => {
if (item && item[DEFAULT_UNIQUE_KEY]) { if (item && item[DEFAULT_UNIQUE_KEY]) {
const itemPrefix = item[DEFAULT_UNIQUE_KEY]; const itemPrefix = item[DEFAULT_UNIQUE_KEY];
// 查找该前缀对应的所有订单,生成连续后缀 // 查找该前缀对应的所有订单,生成连续后缀
const samePrefixItems = currentArray.filter( const samePrefixItems = currentArray.filter(
(i) => i[DEFAULT_UNIQUE_KEY] === itemPrefix, i => i[DEFAULT_UNIQUE_KEY] === itemPrefix
); );
samePrefixItems.forEach((sameItem, index) => { samePrefixItems.forEach((sameItem, index) => {
const cacheKey = `${itemPrefix}-${index + 1}`; const cacheKey = `${itemPrefix}-${index + 1}`;
...@@ -162,27 +162,27 @@ refreshOrderCache(); ...@@ -162,27 +162,27 @@ refreshOrderCache();
// ===== 7. 公开API(暴露给外部调用,核心逻辑+原有基础配置) ===== // ===== 7. 公开API(暴露给外部调用,核心逻辑+原有基础配置) =====
module.exports = { module.exports = {
// === 原有基础配置方法(无改动,保留你的初始逻辑) === // === 原有基础配置方法(无改动,保留你的初始逻辑) ===
setVersion: (version) => { setVersion: version => {
store.set("desktoVersion", version); store.set("desktoVersion", version);
}, },
getVersion: () => store.get("desktoVersion") || "print", getVersion: () => store.get("desktoVersion") || "print",
setNowDate: (version) => { setNowDate: version => {
store.set("nowDate", version); store.set("nowDate", version);
}, },
getNowDate: () => store.get("nowDate") || "", getNowDate: () => store.get("nowDate") || "",
setSkip: (value) => { setSkip: value => {
store.set("skipValue", value); store.set("skipValue", value);
}, },
getSkipValue: () => store.get("skipValue") || 2, getSkipValue: () => store.get("skipValue") || 2,
setSkipVersion: (value) => { setSkipVersion: value => {
store.set("skipVersion", value); store.set("skipVersion", value);
}, },
getSkipVersion: () => store.get("skipVersion") || "1.0", getSkipVersion: () => store.get("skipVersion") || "1.0",
setApi: (value) => { setApi: value => {
store.set("hostApi", value); store.set("hostApi", value);
}, },
getHostApi: () => getHostApi: () =>
...@@ -190,14 +190,14 @@ module.exports = { ...@@ -190,14 +190,14 @@ module.exports = {
apiApiHost: "https://factory.jomalls.com/api", apiApiHost: "https://factory.jomalls.com/api",
fileApiUrl: "https://factory.jomalls.com/upload/factory", fileApiUrl: "https://factory.jomalls.com/upload/factory",
visionUrl: "https://console.jomalls.com", visionUrl: "https://console.jomalls.com",
configPath: "", configPath: ""
}, },
setBoard: (version) => { setBoard: version => {
store.set("desktoBoard", version); store.set("desktoBoard", version);
}, },
getBoard: () => store.get("desktoBoard") || 3, getBoard: () => store.get("desktoBoard") || 3,
setIsOver: (value) => { setIsOver: value => {
store.set("isOver", value); store.set("isOver", value);
}, },
getIsOver: () => store.get("isOver") || false, getIsOver: () => store.get("isOver") || false,
...@@ -206,12 +206,12 @@ module.exports = { ...@@ -206,12 +206,12 @@ module.exports = {
if (!locationKey) return; if (!locationKey) return;
store.set(locationKey, version); store.set(locationKey, version);
}, },
getLocation: (locationKey) => { getLocation: locationKey => {
if (!locationKey) return ""; if (!locationKey) return "";
return store.get(locationKey) || ""; return store.get(locationKey) || "";
}, },
setDesktopDevice: (version) => { setDesktopDevice: version => {
store.set("desktopDevice", version); store.set("desktopDevice", version);
}, },
getDesktopDevice: () => store.get("desktopDevice") || 1, getDesktopDevice: () => store.get("desktopDevice") || 1,
...@@ -233,7 +233,7 @@ module.exports = { ...@@ -233,7 +233,7 @@ module.exports = {
* 批量设置订单(保留永久上限逻辑,不修改订单内部数据) * 批量设置订单(保留永久上限逻辑,不修改订单内部数据)
* @param {Array|Map} newData 待批量添加的订单数据 * @param {Array|Map} newData 待批量添加的订单数据
*/ */
setOrderInfo: (newData) => { setOrderInfo: newData => {
let newObjArray = []; let newObjArray = [];
if (newData instanceof Map) { if (newData instanceof Map) {
newObjArray = mapToArray(newData); newObjArray = mapToArray(newData);
...@@ -245,7 +245,7 @@ module.exports = { ...@@ -245,7 +245,7 @@ module.exports = {
} }
const handledArray = []; const handledArray = [];
newObjArray.forEach((item) => { newObjArray.forEach(item => {
if ( if (
!item || !item ||
!item[DEFAULT_UNIQUE_KEY] || !item[DEFAULT_UNIQUE_KEY] ||
...@@ -263,7 +263,7 @@ module.exports = { ...@@ -263,7 +263,7 @@ module.exports = {
// 永久上限校验 // 永久上限校验
if (isOriginalIdPermanentLimit(originalNewId)) { if (isOriginalIdPermanentLimit(originalNewId)) {
console.warn( console.warn(
`批量添加跳过:${originalNewId} 已达到永久上限 ${numLimit},无法再添加`, `批量添加跳过:${originalNewId} 已达到永久上限 ${numLimit},无法再添加`
); );
return; return;
} }
...@@ -280,7 +280,7 @@ module.exports = { ...@@ -280,7 +280,7 @@ module.exports = {
// 上限校验 // 上限校验
if (currentCount >= numLimit) { if (currentCount >= numLimit) {
console.warn( console.warn(
`批量添加跳过:${originalNewId} 已达到永久上限 ${numLimit}`, `批量添加跳过:${originalNewId} 已达到永久上限 ${numLimit}`
); );
setPermanentMaxLimit(originalNewId); setPermanentMaxLimit(originalNewId);
return; return;
...@@ -303,7 +303,7 @@ module.exports = { ...@@ -303,7 +303,7 @@ module.exports = {
* 单个添加订单(保留永久上限逻辑,不修改订单内部数据) * 单个添加订单(保留永久上限逻辑,不修改订单内部数据)
* @param {object} newOrderObj 待添加的单个订单 * @param {object} newOrderObj 待添加的单个订单
*/ */
addToOrderInfo: (newOrderObj) => { addToOrderInfo: newOrderObj => {
if ( if (
typeof newOrderObj !== "object" || typeof newOrderObj !== "object" ||
newOrderObj === null || newOrderObj === null ||
...@@ -313,22 +313,28 @@ module.exports = { ...@@ -313,22 +313,28 @@ module.exports = {
return; return;
} }
const targetQuantity =
newOrderObj.num || newOrderObj.customizedQuantity || 0;
// 统一校验:必须是 正整数
if ( if (
typeof newOrderObj.num !== "number" || typeof targetQuantity !== "number" ||
!Number.isInteger(newOrderObj.num) || !Number.isInteger(targetQuantity) ||
newOrderObj.num <= 0 targetQuantity <= 0
) { ) {
console.warn("添加失败:订单缺少有效num永久上限(正整数)"); console.warn(
"添加失败:订单缺少有效数量(num 或 customizedQuantity 需为正整数)"
);
return; return;
} }
const originalNewId = newOrderObj[DEFAULT_UNIQUE_KEY]; const originalNewId = newOrderObj[DEFAULT_UNIQUE_KEY];
const numLimit = newOrderObj.num; const numLimit = targetQuantity;
// 永久上限校验 // 永久上限校验
if (isOriginalIdPermanentLimit(originalNewId)) { if (isOriginalIdPermanentLimit(originalNewId)) {
console.warn( console.warn(
`添加失败:${originalNewId} 已达到永久上限 ${numLimit},无法再添加`, `添加失败:${originalNewId} 已达到永久上限 ${numLimit},无法再添加`
); );
return; return;
} }
...@@ -382,7 +388,7 @@ module.exports = { ...@@ -382,7 +388,7 @@ module.exports = {
* @param {string|number} targetNewId 原始newId前缀 * @param {string|number} targetNewId 原始newId前缀
* @param {string} [type] 可选,订单筛选辅助类型(保留兼容) * @param {string} [type] 可选,订单筛选辅助类型(保留兼容)
*/ */
removeFromOrderInfo: (targetNewId) => { removeFromOrderInfo: targetNewId => {
if (!targetNewId || orderCacheMap.size === 0) { if (!targetNewId || orderCacheMap.size === 0) {
console.log(`无有效参数或缓存为空,无法执行删除`); console.log(`无有效参数或缓存为空,无法执行删除`);
return; return;
...@@ -399,7 +405,7 @@ module.exports = { ...@@ -399,7 +405,7 @@ module.exports = {
matchedKeyWithSuffix.push({ matchedKeyWithSuffix.push({
cacheKey: cacheKey, // 保留唯一cacheKey cacheKey: cacheKey, // 保留唯一cacheKey
suffix: suffix, suffix: suffix,
order: order, order: order
}); });
} }
}); });
...@@ -411,7 +417,7 @@ module.exports = { ...@@ -411,7 +417,7 @@ module.exports = {
} }
// 步骤3:核心筛选:保留「saveImgList中所有power都为true」的订单 // 步骤3:核心筛选:保留「saveImgList中所有power都为true」的订单
const qualifiedOrders = matchedKeyWithSuffix.filter((item) => { const qualifiedOrders = matchedKeyWithSuffix.filter(item => {
const { order } = item; const { order } = item;
// 容错1:saveImgList不存在或非数组,视为不满足条件 // 容错1:saveImgList不存在或非数组,视为不满足条件
...@@ -425,7 +431,7 @@ module.exports = { ...@@ -425,7 +431,7 @@ module.exports = {
} }
// 核心判断:every() 验证所有条目都满足 power === true // 核心判断:every() 验证所有条目都满足 power === true
return order.saveImgList.every((imgItem) => { return order.saveImgList.every(imgItem => {
return !!imgItem && imgItem.power === true; return !!imgItem && imgItem.power === true;
}); });
}); });
...@@ -433,7 +439,7 @@ module.exports = { ...@@ -433,7 +439,7 @@ module.exports = {
// 步骤4:无满足条件的订单,返回提示 // 步骤4:无满足条件的订单,返回提示
if (qualifiedOrders.length === 0) { if (qualifiedOrders.length === 0) {
console.log( console.log(
`未找到以${targetNewId}为前缀、且saveImgList所有power都为true的订单`, `未找到以${targetNewId}为前缀、且saveImgList所有power都为true的订单`
); );
return; return;
} }
...@@ -447,11 +453,11 @@ module.exports = { ...@@ -447,11 +453,11 @@ module.exports = {
const originalOrderArray = store.get("orderInfo") || []; const originalOrderArray = store.get("orderInfo") || [];
// 先构建「本地订单数组」与「cacheKey」的映射关系(因为本地订单没有cacheKey,需要反向匹配) // 先构建「本地订单数组」与「cacheKey」的映射关系(因为本地订单没有cacheKey,需要反向匹配)
const orderToCacheKeyMap = new Map(); const orderToCacheKeyMap = new Map();
originalOrderArray.forEach((item) => { originalOrderArray.forEach(item => {
if (item && item[DEFAULT_UNIQUE_KEY]) { if (item && item[DEFAULT_UNIQUE_KEY]) {
const itemPrefix = item[DEFAULT_UNIQUE_KEY]; const itemPrefix = item[DEFAULT_UNIQUE_KEY];
const samePrefixItems = originalOrderArray.filter( const samePrefixItems = originalOrderArray.filter(
(i) => i[DEFAULT_UNIQUE_KEY] === itemPrefix, i => i[DEFAULT_UNIQUE_KEY] === itemPrefix
); );
samePrefixItems.forEach((sameItem, index) => { samePrefixItems.forEach((sameItem, index) => {
const itemCacheKey = `${itemPrefix}-${index + 1}`; const itemCacheKey = `${itemPrefix}-${index + 1}`;
...@@ -463,7 +469,7 @@ module.exports = { ...@@ -463,7 +469,7 @@ module.exports = {
}); });
// 精准过滤:只删除「cacheKey等于toDeleteCacheKey」的订单 // 精准过滤:只删除「cacheKey等于toDeleteCacheKey」的订单
const newOrderArray = originalOrderArray.filter((item) => { const newOrderArray = originalOrderArray.filter(item => {
const itemKey = JSON.stringify(item); const itemKey = JSON.stringify(item);
const itemCacheKey = orderToCacheKeyMap.get(itemKey) || ""; const itemCacheKey = orderToCacheKeyMap.get(itemKey) || "";
// 只保留「cacheKey不等于要删除的cacheKey」的订单,精准无误伤 // 只保留「cacheKey不等于要删除的cacheKey」的订单,精准无误伤
...@@ -488,7 +494,7 @@ module.exports = { ...@@ -488,7 +494,7 @@ module.exports = {
refreshOrderCache(); refreshOrderCache();
console.log( console.log(
`成功删除${targetNewId}对应的订单(cacheKey:${toDeleteCacheKey},仅删除1条),缓存已更新`, `成功删除${targetNewId}对应的订单(cacheKey:${toDeleteCacheKey},仅删除1条),缓存已更新`
); );
}, },
...@@ -515,11 +521,11 @@ module.exports = { ...@@ -515,11 +521,11 @@ module.exports = {
const originalOrderArray = store.get("orderInfo") || []; const originalOrderArray = store.get("orderInfo") || [];
// 合并更新字段,不修改订单内部核心数据 // 合并更新字段,不修改订单内部核心数据
const newOrderArray = originalOrderArray.map((item) => { const newOrderArray = originalOrderArray.map(item => {
if (JSON.stringify(item) === JSON.stringify(order)) { if (JSON.stringify(item) === JSON.stringify(order)) {
return { return {
...item, ...item,
...newOrderFields, ...newOrderFields
}; };
} }
return item; return item;
...@@ -530,10 +536,10 @@ module.exports = { ...@@ -530,10 +536,10 @@ module.exports = {
refreshOrderCache(); refreshOrderCache();
console.log( console.log(
`成功更新${targetNewId}对应的最新订单(cacheKey:${cacheKey}),缓存已更新`, `成功更新${targetNewId}对应的最新订单(cacheKey:${cacheKey}),缓存已更新`
); );
}, },
clearMaxLimitRecord: () => { clearMaxLimitRecord: () => {
return store.set(MAX_LIMIT_RECORD_KEY, {}); return store.set(MAX_LIMIT_RECORD_KEY, {});
}, }
}; };
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