feat: 🚀 修復bug
This commit is contained in:
@@ -292,7 +292,7 @@ const getSetWarehouseKingdeeList = async () => {
|
||||
result?.data?.forEach((it: any) => {
|
||||
options.push({
|
||||
label: it.warehouse_name,
|
||||
value: it.warehouse_number,
|
||||
value: it.warehouse_number + "_" + it.use_org_number,
|
||||
use_org_number: it.use_org_number
|
||||
});
|
||||
});
|
||||
@@ -306,17 +306,22 @@ const getSetWarehouseSubwarehousesList = async () => {
|
||||
if (Array.isArray(kdWarehouseNumber) && kdWarehouseNumber?.length > 0) {
|
||||
//先清空一下
|
||||
_formData.value[2].options = [];
|
||||
let kd_warehouse_number = "";
|
||||
kd_warehouse_number = _searchParams.value.kd_warehouse_number.join(",");
|
||||
let kd_warehouse_number_str = "";
|
||||
let kd_warehouse_number: any = [];
|
||||
_searchParams.value.kd_warehouse_number.forEach((it: any) => {
|
||||
kd_warehouse_number.push(it.split("_")[0]);
|
||||
});
|
||||
|
||||
kd_warehouse_number_str = kd_warehouse_number.join(",");
|
||||
const result = await getSubwarehouseskingdeeListApi({
|
||||
warehouse_number: kd_warehouse_number
|
||||
warehouse_number: kd_warehouse_number_str
|
||||
});
|
||||
if (result?.code === 0) {
|
||||
let options: any = [];
|
||||
result?.data?.forEach((it: any) => {
|
||||
options.push({
|
||||
label: it.sub_warehouse_name,
|
||||
value: it.sub_warehouse_number,
|
||||
value: it.sub_warehouse_number + "_" + it.warehouse_number,
|
||||
warehouse_number: it.warehouse_number
|
||||
});
|
||||
});
|
||||
@@ -347,11 +352,7 @@ const handleSelectMultipleRemote = async (query: any, item: any) => {
|
||||
//品线
|
||||
getProductLines(valClone, item);
|
||||
}
|
||||
// else if (item.type === "selectRemoteKD") {
|
||||
// getSetWarehouseKingdeeList(valClone, item);
|
||||
// } else if (item.type === "selectRemoteKDSubwarehouse") {
|
||||
// getSetWarehouseSubwarehousesList(valClone, item);
|
||||
// }
|
||||
|
||||
loading.value = false;
|
||||
};
|
||||
const handleTagRemove = (item: any) => {
|
||||
@@ -410,15 +411,48 @@ const handleFormSearch = () => {
|
||||
const handleFormReset = () => {
|
||||
emits("reset", _searchParams.value);
|
||||
};
|
||||
// 核心逻辑:根据下划线后的值匹配,保留成功项
|
||||
const filterBySuffixMatch = (targetArr: any, sourceArr: any) => {
|
||||
// 遍历待筛选数组,筛选出符合条件的项
|
||||
const matchedResult = sourceArr.filter((item: any) => {
|
||||
// 分割下划线,获取后半部分(如 "THXLC_101" → "101")
|
||||
const suffix = item.split("_")[1];
|
||||
// 判断后缀是否存在于目标数组中
|
||||
return targetArr.includes(suffix);
|
||||
});
|
||||
return matchedResult;
|
||||
};
|
||||
// 核心逻辑:按规则对比,保留匹配项
|
||||
const filterMatchedItems = (upperArr: any, lowerArr: any) => {
|
||||
// 第一步:处理上方数组,提取所有「下划线前的部分」,组成匹配池
|
||||
const matchPool = upperArr.map((item: any) => item.split("_")[0]);
|
||||
|
||||
// 第二步:遍历下方数组,筛选匹配项
|
||||
const matchedResult = lowerArr.filter((item: any) => {
|
||||
// 提取下方数组元素「下划线后的部分」
|
||||
const lowerSuffix = item.split("_")[1];
|
||||
// 判断是否在匹配池中(同时处理无下划线的情况)
|
||||
return lowerSuffix && matchPool.includes(lowerSuffix);
|
||||
});
|
||||
|
||||
return matchedResult;
|
||||
};
|
||||
watch(
|
||||
() => _searchParams?.value?.use_org_number,
|
||||
newVal => {
|
||||
if (routeName.value === "foundationSetWarehouse") {
|
||||
if (!newVal || !newVal.length) {
|
||||
_searchParams.value.kd_warehouse_number = "";
|
||||
_searchParams.value.kd_subwarehouse_number = "";
|
||||
_formData.value[1].options = [];
|
||||
_formData.value[2].options = [];
|
||||
}
|
||||
getSetWarehouseKingdeeList();
|
||||
if (!_searchParams?.value?.kd_warehouse_number || !_searchParams?.value?.kd_warehouse_number.length) {
|
||||
return;
|
||||
}
|
||||
let kd_warehouse_number = filterBySuffixMatch(newVal, _searchParams?.value?.kd_warehouse_number);
|
||||
_searchParams.value.kd_warehouse_number = kd_warehouse_number;
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -431,9 +465,17 @@ watch(
|
||||
newVal => {
|
||||
if (routeName.value === "foundationSetWarehouse") {
|
||||
if (!newVal || !newVal.length) {
|
||||
_searchParams.value.kd_subwarehouse_number = "";
|
||||
_formData.value[2].options = [];
|
||||
}
|
||||
getSetWarehouseSubwarehousesList();
|
||||
if (!_searchParams?.value?.kd_subwarehouse_number || !_searchParams?.value?.kd_subwarehouse_number.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
let kd_subwarehouse_number = filterMatchedItems(newVal, _searchParams?.value?.kd_subwarehouse_number);
|
||||
console.log(kd_subwarehouse_number, "=kd_subwarehouse_number=");
|
||||
_searchParams.value.kd_subwarehouse_number = kd_subwarehouse_number;
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -70,11 +70,19 @@ export const useTable = (
|
||||
}
|
||||
//金蝶仓库
|
||||
if (Array.isArray(state.totalParam?.kd_warehouse_number) && state.totalParam?.kd_warehouse_number?.length) {
|
||||
state.totalParam.kd_warehouse_number = state.totalParam.kd_warehouse_number.join(",");
|
||||
let kd_warehouse_number: any[] = [];
|
||||
state.totalParam.kd_warehouse_number.forEach((item: any) => {
|
||||
kd_warehouse_number.push(item.split("_")[0]);
|
||||
});
|
||||
state.totalParam.kd_warehouse_number = kd_warehouse_number.join(",");
|
||||
}
|
||||
//金蝶子仓库
|
||||
if (Array.isArray(state.totalParam?.kd_subwarehouse_number) && state.totalParam?.kd_subwarehouse_number?.length) {
|
||||
state.totalParam.kd_subwarehouse_number = state.totalParam.kd_subwarehouse_number.join(",");
|
||||
let kd_subwarehouse_number: any[] = [];
|
||||
state.totalParam.kd_subwarehouse_number.forEach((item: any) => {
|
||||
kd_subwarehouse_number.push(item.split("_")[0]);
|
||||
});
|
||||
state.totalParam.kd_subwarehouse_number = kd_subwarehouse_number.join(",");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -37,10 +37,17 @@ const getGoodsPreview = async () => {
|
||||
};
|
||||
getGoodsPreview();
|
||||
const handleBlack = () => {
|
||||
if (route.query.name === "新增仓位找货优先级") {
|
||||
$router.push({
|
||||
path: "/foundation/set/goods/add",
|
||||
query: { title: route.query.name }
|
||||
});
|
||||
} else {
|
||||
$router.push({
|
||||
path: "/foundation/set/goods/add",
|
||||
query: { id: route.query.id, title: route.query.name }
|
||||
});
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
@@ -31,13 +31,13 @@
|
||||
:init-param="dataStore.initParam"
|
||||
@selectionChange="selectionChange"
|
||||
>
|
||||
<!-- @selectMultipleRemoveTag="handleSelectMultipleRemoveTag" -->
|
||||
<template v-slot:search>
|
||||
<SearchForm
|
||||
@search="handleSearch"
|
||||
@reset="handleReset"
|
||||
:searchParams="dataStore.initParam"
|
||||
:formData="dataStore.formData"
|
||||
@selectMultipleRemoveTag="handleSelectMultipleRemoveTag"
|
||||
/>
|
||||
</template>
|
||||
|
||||
@@ -271,6 +271,7 @@ const getSetWarehouseSubwarehousesLingXingList = async () => {
|
||||
});
|
||||
});
|
||||
dataStore.detailsFormData[4].options = options;
|
||||
console.log(dataStore.detailsRuleForm.lx_warehouse_number, "");
|
||||
//领星
|
||||
if (dataStore.detailsRuleForm.lx_warehouse_number) {
|
||||
dataStore.detailsFormData[4].options.push({
|
||||
@@ -293,10 +294,10 @@ const getSetWarehouseSubwarehousesJushuitanList = async () => {
|
||||
});
|
||||
});
|
||||
dataStore.detailsFormData[3].options = options;
|
||||
if (dataStore.detailsRuleForm.lx_warehouse_number) {
|
||||
if (dataStore.detailsRuleForm.jst_warehouse_number) {
|
||||
dataStore.detailsFormData[3].options.push({
|
||||
label: dataStore.detailsRuleForm.lx_warehouse_name,
|
||||
value: dataStore.detailsRuleForm.lx_warehouse_number
|
||||
label: dataStore.detailsRuleForm.jst_warehouse_name,
|
||||
value: dataStore.detailsRuleForm.jst_warehouse_number
|
||||
});
|
||||
dataStore.detailsFormData[3].options = uniqueArrayObject(dataStore.detailsFormData[3].options);
|
||||
}
|
||||
@@ -352,6 +353,15 @@ const handleCommit = () => {
|
||||
// 搜索
|
||||
const handleSearch = async (params: any) => {
|
||||
dataStore.initParam = cloneDeep(params);
|
||||
// dataStore.initParam.kd_subwarehouse_number
|
||||
// if (dataStore.initParam.kd_subwarehouse_number.length) {
|
||||
// let kd_subwarehouse_number = [];
|
||||
// dataStore.initParam.kd_subwarehouse_number.forEach((it: any) => {
|
||||
// // kd_subwarehouse_number.push(it.split("_")[1]);
|
||||
// console.log(it.split("_")[1]);
|
||||
// });
|
||||
// dataStore.initParam.kd_subwarehouse_number = kd_subwarehouse_number;
|
||||
// }
|
||||
//这里需要等到表格刷新以后才去请求
|
||||
nextTick(() => {
|
||||
proTableRef?.value!.getTableList();
|
||||
@@ -372,85 +382,7 @@ const handleSelectMultipleDClear = (params: any) => {
|
||||
} = params;
|
||||
dataStore.detailsRuleForm[prop] = "";
|
||||
};
|
||||
/**
|
||||
* 监听查询条件标签关闭(统一处理组织、仓库、子仓库联动,修复split类型错误)
|
||||
* @param params { item: { prop: string } } - 关闭标签的相关参数(包含字段标识prop)
|
||||
*/
|
||||
const handleSelectMultipleRemoveTag = (params: any) => {
|
||||
const { item } = params;
|
||||
const { prop } = item;
|
||||
const paramValue = dataStore.initParam[prop]; // 获取当前参数值
|
||||
// 根据字段标识分发处理逻辑
|
||||
switch (prop) {
|
||||
case "use_org_number":
|
||||
handleOrgTagRemove(paramValue);
|
||||
break;
|
||||
case "kd_warehouse_number":
|
||||
handleKdWarehouseTagRemove(paramValue);
|
||||
break;
|
||||
case "kd_subwarehouse_number":
|
||||
handleKdSubWarehouseTagRemove(paramValue);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 组织标签关闭处理(联动仓库、子仓库)
|
||||
* @param remainingOrgValues 关闭后剩余的组织value数组(如:["101"]、["101","115"])
|
||||
*/
|
||||
const handleOrgTagRemove = (remainingOrgValues: any[]) => {
|
||||
// 2. 筛选仓库:基于原始金蝶仓库数据,聚合所有剩余组织对应的仓库(去重)
|
||||
let filteredWarehouses: any = [];
|
||||
if (remainingOrgValues.length > 0) {
|
||||
filteredWarehouses = dataStore.formData[1].options.filter((warehouse: any) =>
|
||||
remainingOrgValues.includes(warehouse.use_org_number)
|
||||
);
|
||||
// 去重:避免同一仓库被多个组织关联导致重复
|
||||
filteredWarehouses = Array.from(new Map(filteredWarehouses.map((item: any) => [item.value, item])).values());
|
||||
}
|
||||
|
||||
// 3. 重置仓库状态(清空已选+更新选项)
|
||||
dataStore.initParam.kd_warehouse_number = "";
|
||||
dataStore.formData[1].options = [];
|
||||
dataStore.formData[1].options = filteredWarehouses;
|
||||
|
||||
// 4. 重置子仓库状态(仓库变化后必须清空)
|
||||
dataStore.initParam.kd_subwarehouse_number = "";
|
||||
dataStore.formData[2].options = [];
|
||||
};
|
||||
|
||||
/**
|
||||
* 金蝶仓库标签关闭处理(联动子仓库)
|
||||
* @param remainingWarehouseValues 关闭后剩余的仓库value数组(如:["AD"]、["AD","CK001"])
|
||||
*/
|
||||
const handleKdWarehouseTagRemove = (remainingWarehouseValues: any[]) => {
|
||||
// 2. 筛选子仓库:基于原始金蝶子仓库数据,聚合所有剩余仓库对应的子仓库
|
||||
let filteredSubWarehouses = [];
|
||||
if (remainingWarehouseValues.length > 0) {
|
||||
filteredSubWarehouses = dataStore.formData[2].options.filter((subWarehouse: any) =>
|
||||
remainingWarehouseValues.includes(subWarehouse.warehouse_number)
|
||||
);
|
||||
} else {
|
||||
// 仓库全部关闭:显示所有原始子仓库数据
|
||||
filteredSubWarehouses = [...dataStore.formData[2].options];
|
||||
}
|
||||
|
||||
// 3. 重置子仓库状态(清空已选+更新选项)
|
||||
dataStore.initParam.kd_subwarehouse_number = "";
|
||||
dataStore.formData[2].options = [];
|
||||
dataStore.formData[2].options = filteredSubWarehouses;
|
||||
};
|
||||
|
||||
/**
|
||||
* 金蝶子仓库标签关闭处理(仅更新自身,不联动上级)
|
||||
* @param remainingSubWarehouseValues 关闭后剩余的子仓库value数组
|
||||
*/
|
||||
const handleKdSubWarehouseTagRemove = (remainingSubWarehouseValues: any[]) => {
|
||||
// 同步表单已选值
|
||||
dataStore.formData[2].options = remainingSubWarehouseValues;
|
||||
};
|
||||
// //监听弹窗开启
|
||||
watch(
|
||||
() => dataStore.dialogVisible,
|
||||
|
||||
367
vite.config.ts.timestamp-1763428081270-15bcc415263b7.mjs
Normal file
367
vite.config.ts.timestamp-1763428081270-15bcc415263b7.mjs
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user