ソースを参照

添加工负责人快速检索,去掉维保类型

HD_wangm 5 ヶ月 前
コミット
81b7158ffe

+ 0 - 33
ygtx-system/src/main/java/com/ygtx/system/service/impl/SysUserServiceImpl.java

@@ -892,39 +892,6 @@ public class SysUserServiceImpl implements ISysUserService
     @Override
     public List<SysUser> selectUserListNoPermi(SysUser user) {
         List<SysUser> userList = userMapper.selectUserList(user);
-        // 为导出功能加载角色和岗位信息
-        if (userList != null && !userList.isEmpty()) {
-            for (SysUser sysUser : userList) {
-                // 加载角色信息
-                List<SysRole> roles = roleMapper.selectRolePermissionByUserId(sysUser.getUserId());
-                sysUser.setRoles(roles);
-                // 设置角色名称用于导出
-                if (roles != null && !roles.isEmpty()) {
-                    StringBuilder roleNames = new StringBuilder();
-                    for (int i = 0; i < roles.size(); i++) {
-                        if (i > 0) {
-                            roleNames.append(",");
-                        }
-                        roleNames.append(roles.get(i).getRoleName());
-                    }
-                    sysUser.setRoleNames(roleNames.toString());
-                }
-
-                // 加载岗位信息(从主岗位表获取)
-                List<SysPost> posts = postService.selectPostsByUserId(sysUser.getUserId());
-                // 设置岗位名称用于导出
-                if (posts != null && !posts.isEmpty()) {
-                    StringBuilder postNames = new StringBuilder();
-                    for (int i = 0; i < posts.size(); i++) {
-                        if (i > 0) {
-                            postNames.append(",");
-                        }
-                        postNames.append(posts.get(i).getPostName());
-                    }
-                    sysUser.setPostNames(postNames.toString());
-                }
-            }
-        }
         return userList;
     }
 }

+ 255 - 133
ygtx-ui/src/views/gxt/gxtOrder/index.vue

@@ -18,16 +18,16 @@
         />
       </el-form-item>
 
-      <el-form-item label="维保类型" prop="inspectionType" label-position="top">
-        <el-select v-model="queryParams.inspectionType" placeholder="请选择工单类型" clearable>
-          <el-option
-              v-for="dict in gxt_inspection_type"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
+<!--      <el-form-item label="维保类型" prop="inspectionType" label-position="top">-->
+<!--        <el-select v-model="queryParams.inspectionType" placeholder="请选择工单类型" clearable>-->
+<!--          <el-option-->
+<!--              v-for="dict in gxt_inspection_type"-->
+<!--              :key="dict.value"-->
+<!--              :label="dict.label"-->
+<!--              :value="dict.value"-->
+<!--          />-->
+<!--        </el-select>-->
+<!--      </el-form-item>-->
       <el-form-item label="维保中心" prop="gxtCenter" label-position="top">
         <el-select
             v-model="queryParams.gxtCenter"
@@ -150,12 +150,12 @@
           {{ scope.row.pcsDeviceName || '-' }}
         </template>
       </el-table-column>
-      <el-table-column label="维保类型" align="center" prop="inspectionType" min-width="100">
-        <template #default="scope">
-          <dict-tag v-if="scope.row.inspectionType" :options="gxt_inspection_type" :value="scope.row.inspectionType"/>
-          <span v-else>-</span>
-        </template>
-      </el-table-column>
+<!--      <el-table-column label="维保类型" align="center" prop="inspectionType" min-width="100">-->
+<!--        <template #default="scope">-->
+<!--          <dict-tag v-if="scope.row.inspectionType" :options="gxt_inspection_type" :value="scope.row.inspectionType"/>-->
+<!--          <span v-else>-</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
       <el-table-column label="工单状态" align="center" prop="workOrderStatus" min-width="100">
         <template #default="scope">
           <dict-tag :options="gxt_work_order_status" :value="scope.row.workOrderStatus"/>
@@ -350,7 +350,7 @@
           <el-row :gutter="20">
             <el-col :span="24">
               <el-form-item label="维保内容" prop="content">
-                <el-input v-model="form.content" type="textarea" placeholder="请输入维保内容" :rows="3" readonly />
+                <el-input v-model="form.content" type="textarea" :rows="3" readonly />
               </el-form-item>
             </el-col>
           </el-row>
@@ -484,21 +484,50 @@
           <el-row :gutter="20">
             <el-col :span="24">
               <el-form-item label="维保内容" prop="content">
-                <el-input v-model="acceptForm.content" type="textarea" placeholder="请输入维保内容" :rows="3" disabled />
+                <el-input v-model="acceptForm.content" type="textarea" :rows="3" disabled />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
-            <el-col :span="24">
+            <el-col :span="12">
               <el-form-item label="工作负责人" prop="teamLeaderId">
-                <el-select v-model="acceptForm.teamLeaderId" placeholder="请选择工作负责人" style="width: 100%" @change="(userId) => acceptForm.teamLeaderName = userList.find(u => u.userId === userId)?.nickName">
-                  <el-option
-                    v-for="user in userList"
-                    :key="user.userId"
-                    :label="user.nickName"
-                    :value="user.userId"
-                  />
-                </el-select>
+<!--                <el-select v-model="acceptForm.teamLeaderId" placeholder="请选择工作负责人" style="width: 100%" @change="(userId) => acceptForm.teamLeaderName = userList.find(u => u.userId === userId)?.nickName">-->
+<!--                  <el-option-->
+<!--                    v-for="user in userList"-->
+<!--                    :key="user.userId"-->
+<!--                    :label="user.nickName"-->
+<!--                    :value="user.userId"-->
+<!--                  />-->
+<!--                </el-select>-->
+                <el-input
+                    v-model="acceptForm.teamLeaderName"
+                    placeholder="请输入工作负责人姓名或点击选择"
+                    clearable
+                    @focus="handleTeamLeaderInputFocus"
+                    @blur="handleTeamLeaderInputBlur"
+                    @input="handleTeamLeaderInput"
+                    @clear="handleTeamLeaderClear"
+                >
+                </el-input>
+                <!-- 快速检索下拉框 -->
+                <div class="quick-select-dropdown" v-show="showTeamLeaderQuickSelect && quickTeamLeaderList.length > 0">
+                  <div
+                      v-for="item in quickTeamLeaderList"
+                      :key="item.userId"
+                      class="quick-select-item"
+                      @click="handleTeamLeaderQuickSelect(item)">
+                    <span class="user-name">{{ item.nickName }}</span>
+                  </div>
+                </div>
+                <div class="quick-select-dropdown no-data" v-show="showTeamLeaderQuickSelect && quickTeamLeaderList.length === 0 && acceptForm.teamLeaderName && !teamLeaderLoading">
+                  <div>未找到匹配的人员</div>
+                </div>
+                <div class="quick-select-dropdown no-data" v-show="showTeamLeaderQuickSelect && teamLeaderLoading">
+                  <div>
+                    <i class="el-icon-loading"></i>
+                    搜索中...
+                  </div>
+                </div>
               </el-form-item>
             </el-col>
           </el-row>
@@ -681,7 +710,7 @@
             <el-row :gutter="20">
               <el-col :span="24">
                 <el-form-item label="维保内容" prop="content">
-                  <el-input v-model="finishForm.content" type="textarea" placeholder="请输入维保内容" :rows="3" disabled />
+                  <el-input v-model="finishForm.content" type="textarea" :rows="3" disabled />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -691,35 +720,35 @@
                   <el-input v-model="finishForm.teamLeaderName" disabled />
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
-                <el-form-item label="维保类型" prop="inspectionType">
-                  <el-select v-model="finishForm.inspectionType" placeholder="请选择维保类型">
-                    <el-option
-                        v-for="dict in gxt_inspection_type"
-                        :key="dict.value"
-                        :label="dict.label"
-                        :value="dict.value"
-                    />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-            <el-row :gutter="20">
-              <el-col :span="24">
-                <el-form-item label="维保总结" prop="realContent">
-                  <el-input v-model="finishForm.realContent"
-                    type="textarea"
-                    placeholder="请输入点评内容,最多100字"
-                    maxlength="100"
-                    :rows="3"
-                    show-word-limit />
-                </el-form-item>
-              </el-col>
+<!--              <el-col :span="12">-->
+<!--                <el-form-item label="维保类型" prop="inspectionType">-->
+<!--                  <el-select v-model="finishForm.inspectionType" placeholder="请选择维保类型">-->
+<!--                    <el-option-->
+<!--                        v-for="dict in gxt_inspection_type"-->
+<!--                        :key="dict.value"-->
+<!--                        :label="dict.label"-->
+<!--                        :value="dict.value"-->
+<!--                    />-->
+<!--                  </el-select>-->
+<!--                </el-form-item>-->
+<!--              </el-col>-->
             </el-row>
+<!--            <el-row :gutter="20">-->
+<!--              <el-col :span="24">-->
+<!--                <el-form-item label="维保总结" prop="realContent">-->
+<!--                  <el-input v-model="finishForm.realContent"-->
+<!--                    type="textarea"-->
+<!--                    placeholder="请输入点评内容,最多100字"-->
+<!--                    maxlength="100"-->
+<!--                    :rows="3"-->
+<!--                    show-word-limit />-->
+<!--                </el-form-item>-->
+<!--              </el-col>-->
+<!--            </el-row>-->
             <el-row>
               <el-col :span="24">
                 <el-form-item label="检修人员">
-                  <el-input v-model="finishForm.workGroupMemberName" />
+                  <el-input v-model="finishForm.workGroupMemberName" readonly />
                 </el-form-item>
 <!--                <el-form-item label="检修人员" prop="memberIds">-->
 <!--                  <el-checkbox-group v-model="finishForm.memberIds" style="width: 100%" @change="handleMembersChange">-->
@@ -838,13 +867,13 @@
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row>
-            <el-col :span="24">
-              <el-form-item label="实际维保内容">
-                <el-input v-model="restartForm.realContent" type="textarea" :rows="3" disabled />
-              </el-form-item>
-            </el-col>
-          </el-row>
+<!--          <el-row>-->
+<!--            <el-col :span="24">-->
+<!--              <el-form-item label="实际维保内容">-->
+<!--                <el-input v-model="restartForm.realContent" type="textarea" :rows="3" disabled />-->
+<!--              </el-form-item>-->
+<!--            </el-col>-->
+<!--          </el-row>-->
           <el-row>
             <el-col :span="24">
               <el-form-item label="附件">
@@ -973,13 +1002,13 @@
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row :gutter="20">
-            <el-col :span="24">
-              <el-form-item label="实际维保内容">
-                <el-input v-model="rateForm.realContent" type="textarea" :rows="3" disabled />
-              </el-form-item>
-            </el-col>
-          </el-row>
+<!--          <el-row :gutter="20">-->
+<!--            <el-col :span="24">-->
+<!--              <el-form-item label="实际维保内容">-->
+<!--                <el-input v-model="rateForm.realContent" type="textarea" :rows="3" disabled />-->
+<!--              </el-form-item>-->
+<!--            </el-col>-->
+<!--          </el-row>-->
           <el-row>
             <el-col :span="24">
               <el-form-item label="附件">
@@ -1056,19 +1085,19 @@
             </el-col>
           </el-row>
           <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="维保类型" prop="inspectionType">
-<!--                <el-input v-model="approveForm.orderType" disabled />-->
-                <el-select v-model="approveForm.inspectionType" disabled>
-                  <el-option
-                      v-for="dict in gxt_inspection_type"
-                      :key="dict.value"
-                      :label="dict.label"
-                      :value="dict.value"
-                  />
-                </el-select>
-              </el-form-item>
-            </el-col>
+<!--            <el-col :span="12">-->
+<!--              <el-form-item label="维保类型" prop="inspectionType">-->
+<!--&lt;!&ndash;                <el-input v-model="approveForm.orderType" disabled />&ndash;&gt;-->
+<!--                <el-select v-model="approveForm.inspectionType" disabled>-->
+<!--                  <el-option-->
+<!--                      v-for="dict in gxt_inspection_type"-->
+<!--                      :key="dict.value"-->
+<!--                      :label="dict.label"-->
+<!--                      :value="dict.value"-->
+<!--                  />-->
+<!--                </el-select>-->
+<!--              </el-form-item>-->
+<!--            </el-col>-->
             <el-col :span="12">
               <el-form-item label="工单状态" prop="workOrderStatus">
 <!--                <el-input v-model="approveForm.workOrderStatus" disabled />-->
@@ -1267,15 +1296,15 @@
                   <el-col :span="24">
                     <el-form-item label="检修人员">{{ detailData.workGroupMemberName || '-' }}</el-form-item>
                   </el-col>
-                  <el-col :span="24">
-                    <el-form-item label="维保类型">
-                      <dict-tag v-if="detailData.inspectionType" :options="gxt_inspection_type" :value="detailData.inspectionType" />
-                      <span v-else>-</span>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :span="24">
-                    <el-form-item label="实际维保内容">{{ detailData.realContent || '-' }}</el-form-item>
-                  </el-col>
+<!--                  <el-col :span="24">-->
+<!--                    <el-form-item label="维保类型">-->
+<!--                      <dict-tag v-if="detailData.inspectionType" :options="gxt_inspection_type" :value="detailData.inspectionType" />-->
+<!--                      <span v-else>-</span>-->
+<!--                    </el-form-item>-->
+<!--                  </el-col>-->
+<!--                  <el-col :span="24">-->
+<!--                    <el-form-item label="实际维保内容">{{ detailData.realContent || '-' }}</el-form-item>-->
+<!--                  </el-col>-->
                   <el-col :span="24">
                     <el-form-item label="得分">{{ detailData.score || '-' }}</el-form-item>
                   </el-col>
@@ -1406,7 +1435,7 @@ import {
   importGxtWorkOrderPersonFromExcel,
   // importTemplate
 } from "@/api/gxt/gxtOrder"
-import { listUser } from "@/api/system/user"
+import {listUser, listUserNoPermi} from "@/api/system/user"
 import {getToken} from "@/utils/auth.js";
 import {getRepairOrder} from "@/api/gxt/repairOrder.js";
 import {listEquipment, listMaintenanceCenters, listStationsByMaintenanceCenter} from "@/api/gxt/equipment.js";
@@ -1414,6 +1443,115 @@ import MisInfoSelectSingle from "@/components/misInfoSelect/single.vue";
 import {genCode} from "@/api/system/autocode/rule.js";
 import {listMisInfo, listWorkPerson} from "@/api/gxt/misInfo.js";
 
+// 工作负责人快速检索相关响应式数据
+const showTeamLeaderQuickSelect = ref(false)
+const quickTeamLeaderList = ref([])
+const teamLeaderLoading = ref(false)
+const teamLeaderSearchTimer = ref(null)
+
+// 工作负责人快速检索方法
+/** 工作负责人输入框获取焦点 */
+const handleTeamLeaderInputFocus = () => {
+  showTeamLeaderQuickSelect.value = true
+  // 如果已有输入内容,立即搜索
+  if (acceptForm.value.teamLeaderName && acceptForm.value.teamLeaderName.trim()) {
+    handleTeamLeaderInput(acceptForm.value.teamLeaderName)
+  } else {
+    // 如果没有输入内容,加载默认列表
+    loadQuickTeamLeaderList()
+  }
+}
+
+/** 工作负责人输入框失去焦点 */
+const handleTeamLeaderInputBlur = () => {
+  // 延迟隐藏下拉框,确保点击选项能触发
+  setTimeout(() => {
+    showTeamLeaderQuickSelect.value = false
+  }, 200)
+}
+
+/** 工作负责人输入事件 - 实时搜索 */
+const handleTeamLeaderInput = (value) => {
+  const searchText = value.trim()
+
+  if (!searchText) {
+    quickTeamLeaderList.value = []
+    showTeamLeaderQuickSelect.value = false
+    return
+  }
+
+  showTeamLeaderQuickSelect.value = true
+
+  // 清除之前的定时器
+  if (teamLeaderSearchTimer.value) {
+    clearTimeout(teamLeaderSearchTimer.value)
+  }
+
+  // 设置新的定时器,防抖处理(300ms)
+  teamLeaderSearchTimer.value = setTimeout(() => {
+    searchTeamLeaderList(searchText)
+  }, 300)
+}
+
+/** 搜索工作负责人列表 */
+const searchTeamLeaderList = async (keyword) => {
+  if (!keyword) {
+    quickTeamLeaderList.value = []
+    return
+  }
+
+  teamLeaderLoading.value = true
+  try {
+    const response = await listUserNoPermi({
+      nickName: keyword,
+      // 可以根据需要添加其他搜索条件
+      status: '0' // 只搜索启用状态的用户
+    })
+
+    quickTeamLeaderList.value = response.data || []
+
+  } catch (error) {
+    console.error('搜索工作负责人失败:', error)
+    proxy.$modal.msgError('搜索失败,请重试')
+    quickTeamLeaderList.value = []
+  } finally {
+    teamLeaderLoading.value = false
+  }
+}
+
+/** 加载快速检索工作负责人列表 */
+const loadQuickTeamLeaderList = async () => {
+  teamLeaderLoading.value = true
+  try {
+    // 加载当前部门下的用户列表
+    const response = await listUserNoPermi({
+      deptId: acceptForm.value.gxtCenterId, // 使用维保中心ID
+      status: '0'
+    })
+    quickTeamLeaderList.value = response.data || []
+  } catch (error) {
+    console.error('加载工作负责人列表失败:', error)
+    quickTeamLeaderList.value = []
+  } finally {
+    teamLeaderLoading.value = false
+  }
+}
+
+/** 快速选择工作负责人 */
+const handleTeamLeaderQuickSelect = (item) => {
+  acceptForm.value.teamLeaderId = item.userId
+  acceptForm.value.teamLeaderName = item.nickName
+  showTeamLeaderQuickSelect.value = false
+}
+
+/** 清空工作负责人 */
+const handleTeamLeaderClear = () => {
+  acceptForm.value.teamLeaderId = undefined
+  acceptForm.value.teamLeaderName = ''
+  quickTeamLeaderList.value = []
+  showTeamLeaderQuickSelect.value = false
+}
+
 // MIS工单快速检索相关响应式数据
 const showMisNoQuickSelect = ref(false)
 const quickMisNoList = ref([])
@@ -1441,20 +1579,16 @@ const handleMisNoInputBlur = () => {
 /** MIS工单编号输入事件 - 实时搜索 */
 const handleMisNoInput = (value) => {
   const searchText = value.trim()
-
   if (!searchText) {
     quickMisNoList.value = []
     showMisNoQuickSelect.value = false
     return
   }
-
   showMisNoQuickSelect.value = true
-
   // 清除之前的定时器
   if (misNoSearchTimer.value) {
     clearTimeout(misNoSearchTimer.value)
   }
-
   // 设置新的定时器,防抖处理(500ms)
   misNoSearchTimer.value = setTimeout(() => {
     searchMisNoList(searchText)
@@ -1771,8 +1905,8 @@ const data = reactive({
   },
   finishRules: {
     // teamLeaderId: [{ required: true, message: "请选择工作负责人", trigger: "change" }],
-    inspectionType: [{ required: true, message: "请选择维保类型", trigger: "change" }],
-    realContent: [{ required: true, message: "请输入实际维保内容", trigger: "change" }],
+    // inspectionType: [{ required: true, message: "请选择维保类型", trigger: "change" }],
+    // realContent: [{ required: true, message: "请输入实际维保内容", trigger: "change" }],
     // memberIds: [{ required: true, message: "请至少选择一名检修人员", trigger: "change" }],
   },
   restartForm: {
@@ -2058,15 +2192,16 @@ function handleRestart(row) {
     restartForm.value = response.data
     restartForm.value.orderId = row.id
     restartForm.value.restartTime = undefined
+    restartDialogVisible.value = true
     // finishForm.value.memberIds = []
-    listUser({ pageNum: 1, pageSize: 100, deptId: row.pcsStationId }).then(response => {
-      userList.value = response.rows
-      restartDialogVisible.value = true
-      // 打开对话框后重置表单验证错误
-      proxy.$nextTick(() => {
-        proxy.$refs["restartRef"]?.clearValidate()
-      })
-    })
+    // listUser({ pageNum: 1, pageSize: 100, deptId: row.pcsStationId }).then(response => {
+    //   userList.value = response.rows
+    //   restartDialogVisible.value = true
+    //   // 打开对话框后重置表单验证错误
+    //   proxy.$nextTick(() => {
+    //     proxy.$refs["restartRef"]?.clearValidate()
+    //   })
+    // })
   })
 }
 
@@ -2115,19 +2250,6 @@ function submitRestart() {
   })
 }
 
-/** 派单 */
-function handleAssign(row) {
-  assignForm.value.orderId = row.id
-  assignForm.value.assignType = 'teamLeader'
-  assignForm.value.teamLeaderId = undefined
-  assignForm.value.workGroupMemberId = undefined
-  // 获取用户列表
-  listUser({ pageNum: 1, pageSize: 100 }).then(response => {
-    userList.value = response.rows
-    assignDialogVisible.value = true
-  })
-}
-
 /** 接单 */
 function handleAccept(row) {
   getGxtOrder(row.id).then(response => {
@@ -2135,14 +2257,22 @@ function handleAccept(row) {
     acceptForm.value.orderId = row.id
     acceptForm.value.teamLeaderId = undefined
     acceptForm.value.teamLeaderName = undefined
-    listUser({ pageNum: 1, pageSize: 100, deptId: row.pcsStationPid }).then(response => {
-      userList.value = response.rows
+    if (row.gxtCenterId) {
+      // 预加载工作负责人列表
+      loadQuickTeamLeaderList()
       acceptDialogVisible.value = true
-      // 打开对话框后重置表单验证错误
-      proxy.$nextTick(() => {
-        proxy.$refs["acceptRef"]?.clearValidate()
-      })
-    })
+      // listUserNoPermi({deptId: row.gxtCenterId}).then(response => {
+      //   userList.value = response.data
+      //   acceptDialogVisible.value = true
+      //   // 打开对话框后重置表单验证错误
+      //   proxy.$nextTick(() => {
+      //     proxy.$refs["acceptRef"]?.clearValidate()
+      //   })
+      // })
+    } else {
+      proxy.$modal.msgWarning("未找到有效的部门信息,无法加载用户列表");
+      acceptDialogVisible.value = true
+    }
   })
 }
 
@@ -2300,14 +2430,7 @@ function handleApprove(row) {
     approveForm.value.orderId = row.id
     approveForm.value.workOrderStatus = 'suspended'
     approveForm.value.rejectionReason = undefined
-    listUser({ pageNum: 1, pageSize: 100, deptId: row.pcsStationId }).then(response => {
-      userList.value = response.rows
-      approveDialogVisible.value = true
-      // 打开对话框后重置表单验证错误
-      proxy.$nextTick(() => {
-        proxy.$refs["finishRef"]?.clearValidate()
-      })
-    })
+    approveDialogVisible.value = true
   })
 }
 
@@ -2766,5 +2889,4 @@ getList()
 :deep(.el-form-item) {
   margin-bottom: 18px;
 }
-
 </style>

+ 193 - 52
ygtx-ui/src/views/gxt/repairOrder/index.vue

@@ -557,14 +557,43 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="工作负责人" prop="teamLeaderId">
-              <el-select v-model="acceptForm.teamLeaderId" placeholder="请选择工作负责人" style="width: 100%" @change="(userId) => acceptForm.teamLeaderName = userList.find(u => u.userId === userId)?.nickName">
-                <el-option
-                    v-for="user in userList"
-                    :key="user.userId"
-                    :label="user.nickName"
-                    :value="user.userId"
-                />
-              </el-select>
+<!--              <el-select v-model="acceptForm.teamLeaderId" placeholder="请选择工作负责人" style="width: 100%" @change="(userId) => acceptForm.teamLeaderName = userList.find(u => u.userId === userId)?.nickName">-->
+<!--                <el-option-->
+<!--                    v-for="user in userList"-->
+<!--                    :key="user.userId"-->
+<!--                    :label="user.nickName"-->
+<!--                    :value="user.userId"-->
+<!--                />-->
+<!--              </el-select>-->
+              <el-input
+                  v-model="acceptForm.teamLeaderName"
+                  placeholder="请输入工作负责人姓名或点击选择"
+                  clearable
+                  @focus="handleTeamLeaderInputFocus"
+                  @blur="handleTeamLeaderInputBlur"
+                  @input="handleTeamLeaderInput"
+                  @clear="handleTeamLeaderClear"
+              >
+              </el-input>
+              <!-- 快速检索下拉框 -->
+              <div class="quick-select-dropdown" v-show="showTeamLeaderQuickSelect && quickTeamLeaderList.length > 0">
+                <div
+                    v-for="item in quickTeamLeaderList"
+                    :key="item.userId"
+                    class="quick-select-item"
+                    @click="handleTeamLeaderQuickSelect(item)">
+                  <span class="user-name">{{ item.nickName }}</span>
+                </div>
+              </div>
+              <div class="quick-select-dropdown no-data" v-show="showTeamLeaderQuickSelect && quickTeamLeaderList.length === 0 && acceptForm.teamLeaderName && !teamLeaderLoading">
+                <div>未找到匹配的人员</div>
+              </div>
+              <div class="quick-select-dropdown no-data" v-show="showTeamLeaderQuickSelect && teamLeaderLoading">
+                <div>
+                  <i class="el-icon-loading"></i>
+                  搜索中...
+                </div>
+              </div>
             </el-form-item>
           </el-col>
         </el-row>
@@ -908,18 +937,18 @@
               />
             </el-form-item>
           </el-col>
-          <el-col :span="24">
-            <el-form-item label="维修总结" prop="content">
-              <el-input
-                  v-model="finalizeForm.content"
-                  type="textarea"
-                  placeholder="请输入维修总结"
-                  maxlength="200"
-                  show-word-limit
-                  :rows="4"
-              />
-            </el-form-item>
-          </el-col>
+<!--          <el-col :span="24">-->
+<!--            <el-form-item label="维修总结" prop="content">-->
+<!--              <el-input-->
+<!--                  v-model="finalizeForm.content"-->
+<!--                  type="textarea"-->
+<!--                  placeholder="请输入维修总结"-->
+<!--                  maxlength="200"-->
+<!--                  show-word-limit-->
+<!--                  :rows="4"-->
+<!--              />-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
           <el-col :span="24">
             <el-form-item label="附件(可选)">
               <preview :limit="8" v-model="finalizeForm.attachmentUrls" :filesize="5"></preview>
@@ -1508,6 +1537,115 @@ const stationOptions = ref([])
 // 故障代码选项
 const faultCodeOptions = ref([])
 
+// 工作负责人快速检索相关响应式数据
+const showTeamLeaderQuickSelect = ref(false)
+const quickTeamLeaderList = ref([])
+const teamLeaderLoading = ref(false)
+const teamLeaderSearchTimer = ref(null)
+
+// 工作负责人快速检索方法
+/** 工作负责人输入框获取焦点 */
+const handleTeamLeaderInputFocus = () => {
+  showTeamLeaderQuickSelect.value = true
+  // 如果已有输入内容,立即搜索
+  if (acceptForm.value.teamLeaderName && acceptForm.value.teamLeaderName.trim()) {
+    handleTeamLeaderInput(acceptForm.value.teamLeaderName)
+  } else {
+    // 如果没有输入内容,加载默认列表
+    loadQuickTeamLeaderList()
+  }
+}
+
+/** 工作负责人输入框失去焦点 */
+const handleTeamLeaderInputBlur = () => {
+  // 延迟隐藏下拉框,确保点击选项能触发
+  setTimeout(() => {
+    showTeamLeaderQuickSelect.value = false
+  }, 200)
+}
+
+/** 工作负责人输入事件 - 实时搜索 */
+const handleTeamLeaderInput = (value) => {
+  const searchText = value.trim()
+
+  if (!searchText) {
+    quickTeamLeaderList.value = []
+    showTeamLeaderQuickSelect.value = false
+    return
+  }
+
+  showTeamLeaderQuickSelect.value = true
+
+  // 清除之前的定时器
+  if (teamLeaderSearchTimer.value) {
+    clearTimeout(teamLeaderSearchTimer.value)
+  }
+
+  // 设置新的定时器,防抖处理(300ms)
+  teamLeaderSearchTimer.value = setTimeout(() => {
+    searchTeamLeaderList(searchText)
+  }, 300)
+}
+
+/** 搜索工作负责人列表 */
+const searchTeamLeaderList = async (keyword) => {
+  if (!keyword) {
+    quickTeamLeaderList.value = []
+    return
+  }
+
+  teamLeaderLoading.value = true
+  try {
+    const response = await listUserNoPermi({
+      nickName: keyword,
+      // 可以根据需要添加其他搜索条件
+      status: '0' // 只搜索启用状态的用户
+    })
+
+    quickTeamLeaderList.value = response.data || []
+
+  } catch (error) {
+    console.error('搜索工作负责人失败:', error)
+    proxy.$modal.msgError('搜索失败,请重试')
+    quickTeamLeaderList.value = []
+  } finally {
+    teamLeaderLoading.value = false
+  }
+}
+
+/** 加载快速检索工作负责人列表 */
+const loadQuickTeamLeaderList = async () => {
+  teamLeaderLoading.value = true
+  try {
+    // 加载当前部门下的用户列表
+    const response = await listUserNoPermi({
+      deptId: acceptForm.value.gxtCenterId, // 使用维保中心ID
+      status: '0'
+    })
+    quickTeamLeaderList.value = response.data || []
+  } catch (error) {
+    console.error('加载工作负责人列表失败:', error)
+    quickTeamLeaderList.value = []
+  } finally {
+    teamLeaderLoading.value = false
+  }
+}
+
+/** 快速选择工作负责人 */
+const handleTeamLeaderQuickSelect = (item) => {
+  acceptForm.value.teamLeaderId = item.userId
+  acceptForm.value.teamLeaderName = item.nickName
+  showTeamLeaderQuickSelect.value = false
+}
+
+/** 清空工作负责人 */
+const handleTeamLeaderClear = () => {
+  acceptForm.value.teamLeaderId = undefined
+  acceptForm.value.teamLeaderName = ''
+  quickTeamLeaderList.value = []
+  showTeamLeaderQuickSelect.value = false
+}
+
 // MIS工单快速检索相关响应式数据
 const showMisNoQuickSelect = ref(false)
 const quickMisNoList = ref([])
@@ -1720,9 +1858,9 @@ const finalizeRules = ref({
   /*selectedMembers: [
     { required: true, message: "请至少选择一名检修人员", trigger: "change" }
   ],*/
-  content: [
-    { required: true, message: "请输入维修总结", trigger: "blur" }
-  ],
+  // content: [
+  //   { required: true, message: "请输入维修总结", trigger: "blur" }
+  // ],
   misOrderNo: [
     { required: true, message: "MIS工单编码不能为空", trigger: "blur" }
   ],
@@ -2248,35 +2386,38 @@ function handleAccept(row) {
     // 获取场站ID用于查询用户
     acceptForm.value.pcsStationId = response.data.pcsStationId
     acceptForm.value.pcsStationPid = response.data.pcsStationPid
-    // 根据场站ID查询该场站的用户列表
-    if (acceptForm.value.pcsStationPid) {
-      /*listUser({ pageNum: 1, pageSize: 100, deptId: acceptForm.value.pcsStationPid }).then(response => {
-        userList.value = response.rows
-        acceptDialogVisible.value = true
-      })*/
-      listUserNoPermi({ deptId: acceptForm.value.pcsStationPid }).then(response => {
-        userList.value = response.data
-        acceptDialogVisible.value = true
-      })
-    }/*else if (acceptForm.value.pcsStationId) {
-      // 先获取部门信息,判断level是否为4,如果是则查找其父部门直到level为3
-      getDeptAndUserByLevel(acceptForm.value.pcsStationId).then(deptId => {
-        // 确保 deptId 是有效的再调用 listUser
-        if (deptId) {
-          listUser({ pageNum: 1, pageSize: 100, deptId: deptId }).then(response => {
-            userList.value = response.rows
-            acceptDialogVisible.value = true
-          })
-        } else {
-          // 如果没有找到有效的部门ID,仍然打开对话框但给出提示
-          proxy.$modal.msgWarning("未找到有效的部门信息,无法加载用户列表");
-          acceptDialogVisible.value = true
-        }
-      })
-    }*/ else {
-      proxy.$modal.msgWarning("未找到有效的部门信息,无法加载用户列表");
-      acceptDialogVisible.value = true
-    }
+    // 预加载工作负责人列表
+    loadQuickTeamLeaderList()
+    acceptDialogVisible.value = true
+    // // 根据场站ID查询该场站的用户列表
+    // if (acceptForm.value.gxtCenterId) {
+    //   /*listUser({ pageNum: 1, pageSize: 100, deptId: acceptForm.value.pcsStationPid }).then(response => {
+    //     userList.value = response.rows
+    //     acceptDialogVisible.value = true
+    //   })*/
+    //   listUserNoPermi({ deptId: acceptForm.value.gxtCenterId }).then(response => {
+    //     userList.value = response.data
+    //     acceptDialogVisible.value = true
+    //   })
+    // }/*else if (acceptForm.value.pcsStationId) {
+    //   // 先获取部门信息,判断level是否为4,如果是则查找其父部门直到level为3
+    //   getDeptAndUserByLevel(acceptForm.value.pcsStationId).then(deptId => {
+    //     // 确保 deptId 是有效的再调用 listUser
+    //     if (deptId) {
+    //       listUser({ pageNum: 1, pageSize: 100, deptId: deptId }).then(response => {
+    //         userList.value = response.rows
+    //         acceptDialogVisible.value = true
+    //       })
+    //     } else {
+    //       // 如果没有找到有效的部门ID,仍然打开对话框但给出提示
+    //       proxy.$modal.msgWarning("未找到有效的部门信息,无法加载用户列表");
+    //       acceptDialogVisible.value = true
+    //     }
+    //   })
+    // }*/ else {
+    //   proxy.$modal.msgWarning("未找到有效的部门信息,无法加载用户列表");
+    //   acceptDialogVisible.value = true
+    // }
   })
 }