From 19e85dbdf715ff1b588734bc0255637eecd77fa7 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 22 五月 2026 17:42:20 +0800
Subject: [PATCH] feat: 指定报工人新增模糊搜索
---
src/views/productionManagement/workOrderEdit/index.vue | 42 ++++++++++++++++++++++++++++++++++++++----
1 files changed, 38 insertions(+), 4 deletions(-)
diff --git a/src/views/productionManagement/workOrderEdit/index.vue b/src/views/productionManagement/workOrderEdit/index.vue
index 64fd087..37cbb4e 100644
--- a/src/views/productionManagement/workOrderEdit/index.vue
+++ b/src/views/productionManagement/workOrderEdit/index.vue
@@ -73,6 +73,18 @@
title="鎸囧畾鎶ュ伐浜�"
width="800px">
<div class="assign-reporter-content">
+ <div class="search-box">
+ <el-input
+ v-model="employeeSearchKeyword"
+ placeholder="鎼滅储浜哄憳濮撳悕"
+ clearable
+ @input="handleEmployeeSearch"
+ style="width: 350px">
+ <template #prefix>
+ <i class="el-icon-search"></i>
+ </template>
+ </el-input>
+ </div>
<div class="selected-tags-box"
v-if="selectedEmployeeIds.length > 0">
<div class="tags-label">宸查�夋嫨锛�</div>
@@ -90,7 +102,7 @@
v-loading="employeeTableLoading">
<el-checkbox-group v-model="selectedEmployeeIds">
<div class="employee-grid">
- <div v-for="item in employeeTableData"
+ <div v-for="item in filteredEmployeeList"
:key="item.userId"
class="employee-item">
<el-checkbox :label="item.userId"
@@ -103,9 +115,9 @@
</div>
</div>
</el-checkbox-group>
- <div v-if="employeeTableData.length === 0"
+ <div v-if="filteredEmployeeList.length === 0"
class="empty-text">
- 鏆傛棤鍖归厤浜哄憳
+ {{ employeeSearchKeyword ? '鏃犲尮閰嶄汉鍛�' : '鏆傛棤浜哄憳鏁版嵁' }}
</div>
</div>
</div>
@@ -121,7 +133,7 @@
</template>
<script setup>
- import { getCurrentInstance, onMounted, reactive, ref, toRefs } from "vue";
+ import { getCurrentInstance, onMounted, reactive, ref, toRefs, computed } from "vue";
import { ElMessageBox } from "element-plus";
import {
productWorkOrderPage,
@@ -253,8 +265,24 @@
const employeeSearchForm = reactive({
staffName: "",
});
+ const employeeSearchKeyword = ref("");
const selectedEmployeeIds = ref([]);
const currentWorkOrder = ref(null);
+
+ const filteredEmployeeList = computed(() => {
+ const keyword = employeeSearchKeyword.value.trim().toLowerCase();
+ if (!keyword) {
+ return employeeTableData.value;
+ }
+ return employeeTableData.value.filter(item => {
+ const name = (item.nickName || "").toLowerCase();
+ const dept = (item.dept?.deptName || "").toLowerCase();
+ return name.includes(keyword) || dept.includes(keyword);
+ });
+ });
+
+ const handleEmployeeSearch = () => {
+ };
const data = reactive({
searchForm: {
@@ -416,6 +444,12 @@
}
.assign-reporter-content {
+ .search-box {
+ margin-bottom: 16px;
+ display: flex;
+ justify-content: center;
+ }
+
.selected-tags-box {
margin-bottom: 16px;
padding: 12px;
--
Gitblit v1.9.3