fix: 🧩 修复BUG
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user