物料 远程搜索

pull/1/head
qiuhongwu 9 months ago
parent 0eeedcbe65
commit 32abd02b36

@ -13,6 +13,7 @@
<el-col :span="1"> 客户</el-col>
<el-col :span="1"> 供应商</el-col>
<el-col :span="1"> 材质</el-col>
<el-col :span="1"> 物料</el-col>
</el-row>
<!-- 搜索工作栏 -->
<el-form

@ -25,6 +25,9 @@
<el-form-item label="材质" prop="compositionId">
<CompositionSelect v-model="formData.compositionId" />
</el-form-item>
<el-form-item label="物料" prop="materialId">
<MaterialSelect v-model="formData.materialId" />
</el-form-item>
</el-form>
<template #footer>
<el-button type="primary" @click="submitForm"> </el-button>
@ -45,6 +48,7 @@ import ClientSelect from '../hlvuestyle/clientSelect.vue'
import SupplierSelect from '../hlvuestyle/supplierSelect.vue'
import CompositionSelect from '../hlvuestyle/compositionSelect.vue'
import WorkshopSelect from '../hlvuestyle/workshopSelect.vue'
import MaterialSelect from '../hlvuestyle/materialSelect.vue'
defineOptions({ name: 'SystemDeptForm' })
@ -63,6 +67,7 @@ const formData: any = ref({
supplierId: undefined,
compositionId: undefined,
workshopId: undefined,
materialId: undefined,
status: CommonStatusEnum.ENABLE
})
const formRules = reactive<FormRules>({

@ -0,0 +1,61 @@
<template>
<!-- 物料选择 -->
<el-select
v-model="valueName"
placeholder="请输入物料"
:remote-method="remoteMethod"
remote-show-suffix
remote
clearable
reserve-keyword
filterable
:loading="Loading"
@change="onSelectChange"
>
<el-option v-for="item in materialSelectList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
<script lang="ts" setup>
import { ref, onMounted, toRefs } from 'vue'
import * as MaterialApi from '@/api/heli/material'
const valueName: any = ref() //
const materialList = ref<MaterialApi.MaterialVO[]>([]) //
const materialSelectList = ref<MaterialApi.MaterialVO[]>([])
const Loading = ref(false)
//
onMounted(async () => {
const queryParams = {
pageNo: 1,
pageSize: 10,
code: undefined,
brief: undefined,
status: undefined
}
try {
const data = await MaterialApi.getMaterialPage(queryParams)
console.log(data.list)
materialList.value = data.list
//
remoteMethod('')
} catch (error) {
console.error(error)
}
})
const remoteMethod = (query: any) => {
if (query) {
Loading.value = true
setTimeout(() => {
Loading.value = false
materialSelectList.value = materialList.value
.filter((item) => item.name.toLowerCase().includes(query.toLowerCase()))
.slice(0, 10) //10
}, 200)
} else {
materialSelectList.value = materialList.value.slice(0, 10)
}
}
</script>
Loading…
Cancel
Save