fix: 🧩 修复BUG

This commit is contained in:
2025-10-10 16:58:14 +08:00
parent efee846973
commit 190be3b7ce
9 changed files with 75 additions and 24 deletions

View File

@@ -58,7 +58,7 @@
v-if="item.type === 'selectRemote' || item.type === 'selectRemote1' || item.type === 'selectRemote2'"
>
<el-select
v-model="_searchParams[`${item.prop}`]"
v-model.trim="_searchParams[`${item.prop}`]"
:placeholder="item.placeholder"
clearable
remote
@@ -89,12 +89,13 @@
<!-- getProductLinesApi -->
<template v-if="item.type === 'selectMultipleRemote' || item.type === 'selectProductLinesRemote'">
<el-select
v-model="_searchParams[`${item.prop}`]"
v-model.trim="_searchParams[`${item.prop}`]"
:placeholder="item.placeholder"
remote
multiple
filterable
:reserve-keyword="false"
@remove-tag="handleTagRemove(item)"
@clear="handleClear(item)"
:loading="loading"
class="m-2 select"
@@ -122,7 +123,7 @@
<template v-if="item.type === 'selectMultiple'">
<!-- multiple -->
<el-select
v-model="_searchParams[`${item.prop}`]"
v-model.trim="_searchParams[`${item.prop}`]"
filterable
multiple
:disabled="item.disabled"
@@ -130,6 +131,8 @@
class="m-2 select"
:reserve-keyword="false"
style="width: 224px"
@remove-tag="handleTagRemove1(item)"
ref="remoteRef"
>
<!-- 循环渲染选项label 为显示文本value 为实际提交值 -->
<el-option
@@ -144,7 +147,7 @@
<template v-if="item.type === 'selectMultipleD'">
<!-- multiple -->
<el-select
v-model="_searchParams[`${item.prop}`]"
v-model.trim="_searchParams[`${item.prop}`]"
filterable
clearable
:reserve-keyword="false"
@@ -178,15 +181,17 @@ import { getSupplierApi, getCustomersApi, getProductLinesApi } from "@/api/modul
const props = defineProps<{
formData: any[];
searchParams: Record<string, any>;
selectMultipleRemoveTag?: () => void;
}>();
const emits = defineEmits<{
(e: "search", result: Record<string, any>): void;
(e: "reset", result: Record<string, any>): void;
(e: "selectMultipleRemoveTag", result: Record<string, any>): void;
}>();
let loading = ref(false);
const remoteRef = ref(null);
const _searchParams = computed(() => {
return props.searchParams;
});
@@ -209,6 +214,8 @@ const getSupplier = async (keywords: any, item: any) => {
if (result?.code === 0) {
const { data } = result;
item.options = data;
} else {
item.options = [];
}
};
//客戶
@@ -219,13 +226,15 @@ const getCustomers = async (keywords: any, item: any) => {
const { data } = result;
if (Array.isArray(data) && data.length) {
let options: any = [];
data.forEach((item: any) => {
data.forEach((it: any) => {
options.push({
value: item.customer_number,
label: item.customer_name
value: it.customer_number,
label: it.customer_name
});
});
item.options = options;
} else {
item.options = [];
}
}
};
@@ -236,39 +245,53 @@ const getProductLines = async (keywords: any, item: any) => {
const { data } = result;
if (Array.isArray(data) && data.length) {
let options: any = [];
data.forEach((item: any) => {
data.forEach((it: any) => {
options.push({
value: item,
label: item
value: it,
label: it
});
});
item.options = options;
} else {
item.options = [];
}
}
};
//多选远程搜索
const handleSelectMultipleRemote = async (query: any, item: any) => {
console.log(remoteRef.value, "==========remoteRef=========");
loading.value = true;
if (!query) {
loading.value = false;
return;
}
item.options = [];
//去除字符串首尾的所有空白字符。
let valClone = query.replace(/^\s*|\s*$/g, "");
if (!valClone.length) {
loading.value = false;
return;
}
if (item.type === "selectMultipleRemote") {
//客戶編碼
getCustomers(valClone, item);
} else if (item.type === "selectProductLinesRemote") {
//品线
console.log("走到了这里");
getProductLines(valClone, item);
}
loading.value = false;
};
const handleTagRemove = (item: any) => {
if (!_searchParams.value[item.prop].length) {
item.options = [];
}
};
const handleTagRemove1 = (item: any) => {
emits("selectMultipleRemoveTag", { item, org_number: _searchParams.value.org_number });
};
//单选远程搜索(供应商)
const remoteMethod = async (query: any, item: any) => {
loading.value = true;
@@ -276,8 +299,9 @@ const remoteMethod = async (query: any, item: any) => {
loading.value = false;
return;
}
item.options = [];
//去除字符串首尾的所有空白字符。
let valClone = query.replace(/^\s*|\s*$/g, "");
let valClone = query.replace(/^\s+|\s+$/g, "");
if (!valClone.length) {
loading.value = false;
return;