From 27c8277d717b34b55f3ea967027b53b067f77df3 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期四, 20 八月 2026 16:58:49 +0800
Subject: [PATCH] feat 功能变更
---
src/views/mes/pd/ctc/components/select.vue | 64 ++++++++++++++++++++++++++++++++
1 files changed, 64 insertions(+), 0 deletions(-)
diff --git a/src/views/mes/pd/ctc/components/select.vue b/src/views/mes/pd/ctc/components/select.vue
new file mode 100644
index 0000000..7508b0e
--- /dev/null
+++ b/src/views/mes/pd/ctc/components/select.vue
@@ -0,0 +1,64 @@
+<script lang="ts" setup>
+ import { onMounted, ref } from 'vue';
+
+ import { Select } from 'ant-design-vue';
+
+ import { getCtcPage } from '#/api/mes/pd/ctc';
+
+ defineOptions({ name: 'PdCtcSelect', inheritAttrs: false });
+
+ const props = withDefaults(
+ defineProps<{
+ allowClear?: boolean;
+ disabled?: boolean;
+ modelValue?: number;
+ placeholder?: string;
+ }>(),
+ {
+ allowClear: true,
+ disabled: false,
+ modelValue: undefined,
+ placeholder: '璇烽�夋嫨鎹綅瀵肩嚎浜у搧',
+ },
+ );
+
+ const emit = defineEmits<{
+ 'update:modelValue': [value: number | undefined];
+ }>();
+
+ const options = ref<{ label: string; value: number }[]>([]);
+ const searchText = ref('');
+
+ async function load() {
+ const data = await getCtcPage({
+ pageNo: 1,
+ pageSize: 100,
+ orderSpec: searchText.value || undefined,
+ });
+ options.value = (data.list ?? []).map((item) => ({
+ label: `${item.orderSpec ?? ''}${item.itemName ? `锛�${item.itemName}锛塦 : ''}`,
+ value: item.id!,
+ }));
+ }
+
+ onMounted(load);
+
+ function handleSearch(val: string) {
+ searchText.value = val;
+ load();
+ }
+</script>
+
+<template>
+ <Select
+ :model-value="modelValue"
+ :options="options"
+ :disabled="disabled"
+ :placeholder="placeholder"
+ :allow-clear="allowClear"
+ show-search
+ :filter-option="false"
+ @update:value="(v: number | undefined) => emit('update:modelValue', v)"
+ @search="handleSearch"
+ />
+</template>
--
Gitblit v1.9.3