Kaynağa Gözat

问题调整

xy 1 ay önce
ebeveyn
işleme
9d640c3eb1

+ 1 - 1
yudao-ui-admin-vue3/src/components/DynamicReport/SpreadViewer.vue

@@ -524,7 +524,7 @@ const hiddenPage = async () => {
 
 defineExpose({reloadView:initPreview, handleSave});
 
-const emit = defineEmits(['saveSuccess','docReady','docCreate','saveFail'])
+const emit = defineEmits(['saveSuccess','docReady','docCreate','saveFail','close'])
 
 // 动态计算PDF查看器尺寸
 const calculatePdfSize = () => {

+ 1 - 1
yudao-ui-admin-vue3/src/views/pressure2/boilerchecker/taskDetail.vue

@@ -21,7 +21,7 @@
         <ContentWrap title="检验项目清单" class="h-full flex flex-col" :bodyStyle="{padding: '10px', flex: 1, overflow: 'hidden'}">
           <template #header>
             <el-button @click="handleAddItem" type="primary" size="small" :disabled="taskInfo?.taskStatus === PressureTaskOrderTaskStatus['REPORT_END'] || canAddReportItem">添加检验项目</el-button>
-            <el-button @click="handleAddItemPart" type="primary" size="small" v-if="taskOrderItem?.boilerType === '1'"
+            <el-button @click="handleAddItemPart" type="primary" size="small" v-if="taskOrderItem?.boilerType === '1' && taskInfo?.checkType === 100"
                        :disabled="taskInfo?.taskStatus === PressureTaskOrderTaskStatus['REPORT_END'] || canAddReportItem">
               添加检验部件</el-button>
           </template>

+ 10 - 10
yudao-ui-admin-vue3/src/views/pressure2/boilertaskorder/components/AddInspectionplanDetail.vue

@@ -89,16 +89,16 @@
         </el-select>
       </el-form-item>
 
-      <el-form-item label="检验方案批准人" prop="inspectionApproveId">
-        <el-select v-model="formData.inspectionApproveId" clearable placeholder="请选择">
-          <el-option
-            v-for="item in optionList.schemeApproveList"
-            :key="item.id"
-            :label="item.nickname"
-            :value="item.id"
-          />
-        </el-select>
-      </el-form-item>
+<!--      <el-form-item label="检验方案批准人" prop="inspectionApproveId">-->
+<!--        <el-select v-model="formData.inspectionApproveId" clearable placeholder="请选择">-->
+<!--          <el-option-->
+<!--            v-for="item in optionList.schemeApproveList"-->
+<!--            :key="item.id"-->
+<!--            :label="item.nickname"-->
+<!--            :value="item.id"-->
+<!--          />-->
+<!--        </el-select>-->
+<!--      </el-form-item>-->
     </el-form>
     <template #footer>
       <el-button @click="approvalUserVisible = false">取消</el-button>

+ 4 - 3
yudao-ui-admin-vue3/src/views/pressure2/boilertaskorder/components/ServiceRecordList.vue

@@ -99,7 +99,7 @@
 
   <!-- 检验录入-模板 -->
   <CustomDialog v-model="showInlineEditRecord" title="检验录入" :show-footer="false" fullscreen>
-    <SpreadViewer :initData="editData" ref="editSpreadRecordRef" @saveSuccess="saveSuccessRecord"/>
+    <SpreadViewer :initData="editData" ref="editSpreadRecordRef" @saveSuccess="saveSuccessRecord" @close="showInlineEditRecord = false"/>
   </CustomDialog>
 
   <!-- 查看版本详情的弹窗 -->
@@ -135,7 +135,7 @@
         </el-select>
       </el-form-item>
 
-      <el-form-item label="检验方案批准人" prop="inspectionApproveId">
+      <el-form-item label="检验方案批准人" prop="inspectionApproveId" v-if="props.businessType !== 400">
         <el-select v-model="formData.inspectionApproveId" clearable placeholder="请选择">
           <el-option
             v-for="item in optionList.schemeApproveList"
@@ -521,6 +521,7 @@ const handleRefresh = async () => {
   await handleGetTemplate()
   historyVersionParams.value.pageNo = 1
   await fetchHisVersionPage(true)
+  initPreview()
 }
 
 // 历史记录版本查询参数
@@ -864,7 +865,7 @@ const initPreview=()=>{
 onMounted(async () => {
   await updateServiceOrderDialogFormData()
   await handleRefresh()
-  initPreview()
+  // initPreview()
 })
 </script>
 

+ 1 - 1
yudao-ui-admin-vue3/src/views/pressure2/boilertaskorder/components/TaskOrderDetailDialog.vue

@@ -322,7 +322,7 @@
       </ContentWrap>
       <ContentWrap
         title="审核"
-        v-if="supportingDocsAuditDataList.length > 0">
+        v-if="supportingDocsAuditDataList.length > 0 && inPageMode">
         <SmartTable
           v-model:columns="supportingDocsAuditColumns"
           :data="supportingDocsAuditDataList"

+ 70 - 119
yudao-ui-admin-vue3/src/views/pressure2/boilertaskorder/detail.vue

@@ -149,26 +149,19 @@
               />
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="24">
             <!-- 检验员 teamList -->
             <el-form-item label="检验员" prop="teamList">
-              <div class="flex items-center gap-2">
-                <div v-if="selectedCheckers.length > 0" class="selected-checkers flex-1">
-                  <el-tag
-                    v-for="checker in selectedCheckers"
-                    :key="checker.memberId"
-                    class="mx-1"
-                    closable
-                    @close="removeChecker(checker.memberId)"
-                  >
-                    <span v-if="checker.isLeader" class="leader-tag">组</span>
-                    {{ checker.member?.nickname }}
-                  </el-tag>
-                </div>
-                <el-button type="primary" link @click="openCheckerSelect">
-                  选择检验员
-                </el-button>
-              </div>
+              <CheckerSelect
+                ref="checkerSelectRef"
+                v-model="selectedCheckers"
+                :dept-id="userStore.getUser.deptId?.toString() || '1'"
+                :disabled="false"
+                :has-data="true"
+                empty-text="暂无检验员数据"
+                :multiple="true"
+                @change="handleCheckerChange"
+              />
             </el-form-item>
           </el-col>
         </el-row>
@@ -418,25 +411,6 @@
         </el-col>
       </el-row>
     </ContentWrap>
-    <!-- 检验员选择弹窗 -->
-    <el-dialog
-      v-model="checkerSelectVisible"
-      title="选择检验员"
-      append-to-body
-      width="600px"
-    >
-      <CheckerSelect
-        v-model="currentSelectedCheckerIds"
-        @change="handleCheckerChange"
-      />
-      <template #footer>
-        <div class="flex justify-end">
-          <el-button @click="checkerSelectVisible = false">取消</el-button>
-          <el-button type="primary" @click="confirmCheckerSelect">确定</el-button>
-        </div>
-      </template>
-    </el-dialog>
-
     <!-- 添加设备弹窗 -->
     <AddEquipDialog
       v-model:visible="addEquipVisible"
@@ -510,10 +484,10 @@
 </template>
 
 <script setup lang="ts">
-import { ref, onMounted, computed, watch } from 'vue'
+import { ref, onMounted, computed, watch, nextTick } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { BoilerTaskOrderApi } from '@/api/pressure2/boilertaskorder'
-import CheckerSelect from '@/views/pressure2/equipboilerscheduling/components/CheckerSelect.vue'
+import CheckerSelect, { type CheckerItem } from '@/views/pressure2/components/CheckerSelect'
 import dayjs from 'dayjs'
 import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
 import DeptSelect from '../equipboilerscheduling/components/DeptSelect.vue'
@@ -534,17 +508,18 @@ import { useTagsViewStore } from '@/store/modules/tagsView'
 import {getUnitContacts, getUnitNewList} from "@/api/laboratory/unit";
 import {numberToChinese} from "@/utils/formatter";
 import {Icon} from "@/components/Icon";
-import BatchEditForm from "@/views/pressure/plan/components/batchEditForm.vue";
+import {useUserStoreWithOut} from "@/store/modules/user";
 
 const route = useRoute()
 const orderDetail = ref()
 const tagsViewStore = useTagsViewStore()
+const userStore = useUserStoreWithOut()
 const checkTypeMap = PressureBoilerCheckTypeMap
 const useInputUseUnitName = ref(false)
 const useInputUnitName = ref(false)
 const formData = ref({
   checkDate: '',
-  inspectors: [] as string[],
+  teamItemList: [] as string[],
   unitName: {
     name: '',
     id: '',
@@ -606,11 +581,11 @@ const boilerTypeOptions = getStrDictOptions(DICT_TYPE.SYSTEM_EQUIP_BOILER_TYPE)
 
 const loading = ref(false)
 
-// 检验员选择相关
-const checkerSelectVisible = ref(false)
+// 检验员组件引用
+const checkerSelectRef = ref()
+
+// 选中的检验员对象列表
 const selectedCheckers = ref<any[]>([])
-const currentSelectedCheckerIds = ref<any[]>([])
-const tempSelectedCheckers = ref<any[]>([])
 
 // 记录每个区域下已选择的街道
 const areaStreetMap = ref(new Map<number, number[]>())
@@ -715,7 +690,7 @@ const getDetail = async () => {
     formData.value = {
       ...formData.value,
       checkDate: formatArrayDate(orderDetail.value?.checkDate || []),
-      inspectors: [],
+      teamItemList: [],
       unitName: {
         name: orderDetail.value?.unitName || '',
         id: ''
@@ -767,7 +742,7 @@ const getDetail = async () => {
 
 
     // 更新检验员数据
-    const inspectors = orderDetail.value?.teamItemList?.flatMap((team: any) => {
+    const teamItemList = orderDetail.value?.teamItemList?.flatMap((team: any) => {
       const teamMembers: any[] = []
 
       // 处理组长
@@ -800,10 +775,17 @@ const getDetail = async () => {
 
       return teamMembers
     }) || []
-    console.log(inspectors)
-    if (inspectors.length > 0) {
-      selectedCheckers.value = inspectors
-      formData.value.inspectors = inspectors.map(c => c.memberId)
+    
+    if (teamItemList.length > 0) {
+      selectedCheckers.value = teamItemList
+      formData.value.teamItemList = teamItemList
+    }
+    
+    // 加载检验员列表(默认当前登录人的部门)
+    const deptId = userStore.getUser.deptId?.toString()
+    if (deptId) {
+      await nextTick()
+      checkerSelectRef.value?.getCheckerList(deptId)
     }
   } catch (error) {
     console.error('获取任务单详情失败:', error)
@@ -813,14 +795,14 @@ const getDetail = async () => {
   }
 }
 
-/** 打开检验员选择弹窗 */
-const openCheckerSelect = () => {
-  checkerSelectVisible.value = true
-  // 设置当前选中的检验员
-  currentSelectedCheckerIds.value = selectedCheckers.value.map(c => c.groupTeamId + ':' + c.memberId)
-  tempSelectedCheckers.value = [...selectedCheckers.value]
+/** 处理检验员变化 */
+const handleCheckerChange = (checkers) => {
+  console.log('检验员变化:', checkers)
+  // 这里可以根据需要进行额外处理
+  selectedCheckers.value = checkers
+  // 同步更新 formData.value.teamItemList
+  formData.value.teamItemList = checkers
 }
-// 设备查询相关
 const handleEquipQuery = async () => {
   loading.value = true
   try {
@@ -864,25 +846,6 @@ onMounted(async () => {
   await handleEquipQuery()
 })
 
-/** 处理检验员变化 */
-const handleCheckerChange = (checkers) => {
-  tempSelectedCheckers.value = checkers
-  currentSelectedCheckerIds.value = checkers.map(c => c.groupTeamId + ':' + c.memberId)
-}
-
-/** 确认检验员选择 */
-const confirmCheckerSelect = () => {
-  selectedCheckers.value = [...tempSelectedCheckers.value]
-  formData.value.inspectors = selectedCheckers.value.map(c => c.memberId)
-  checkerSelectVisible.value = false
-}
-
-/** 移除检验员 */
-const removeChecker = (memberId: string) => {
-  selectedCheckers.value = selectedCheckers.value.filter(c => c.memberId !== memberId)
-  formData.value.inspectors = selectedCheckers.value.map(c => c.memberId)
-}
-
 /** 禁用日期 */
 const disabledDate = (time: Date) => {
   // 禁用过去的日期
@@ -1153,36 +1116,6 @@ const submitAcceptance = async (reason: string) => {
   try {
     loading.value = true
 
-    // Start with a deep copy of the original orderDetail to ensure all fields are present
-    //const submitData = JSON.parse(JSON.stringify(orderDetail.value || {}));
-
-    // // Define fields that are directly updatable from formData
-    // const formEditableFields = [
-    //   'checkDate', 'unitContact', 'unitEmail', 'unitPhone',
-    //   'zipCode', 'remark', 'email', 'isAttach',
-    //   'sendType', 'vehicle', 'payType', 'acceptType',
-    //   'payAmount', 'serviceAmount', 'shouldAmount', 'reduceFee',
-    //   'useUnitName', 'useUnitSocialCreditCode', 'useUnitAddress',
-    //   'useUnitZipcode', 'useUnitContact', 'useUnitPhone',
-    //   'socialCreditCode', 'recipient', 'recipientPhone', 'recipientEmail',
-    //   'deptPhone', 'checkDate', 'manager', 'acceptor',
-    //   'feeNature', 'actualAmount', 'feeDate', 'isPay',
-    //   'payerContactName', 'payerContact', 'payerMail'
-    // ];
-    //
-    // // Update submitData with values from formData for editable fields
-    // formEditableFields.forEach(field => {
-    //   if (formData.value.hasOwnProperty(field)) {
-    //     submitData[field] = formData.value[field];
-    //   }
-    // });
-    //
-    // submitData.unitName = formData.value.unitName.name;
-    // submitData.useUnitName = formData.value.useUnitName.name;
-    //
-    // // 更新orderItems,从可能修改的equipList
-    // submitData.orderItems = equipList.value;
-
     // 组装提交数据
     const submitData = {
       id: orderDetail.value?.id,
@@ -1212,22 +1145,40 @@ const submitAcceptance = async (reason: string) => {
       shouldAmount: formData.value.shouldAmount,
       reduceFee: formData.value.reduceFee,
       deptPhone: formData.value?.deptPhone,
-      teamList: selectedCheckers.value.reduce((acc, checker) => {
-        const existingTeam = acc.find(team => team.groupTeamId === checker.groupTeamId)
-        if (existingTeam) {
-          if (checker.isLeader) {
-            existingTeam.leaderId = checker.memberId
-          } else {
-            existingTeam.userIds.push(checker.memberId)
+      // teamList: selectedCheckers.value.reduce((acc, checker) => {
+      //   const existingTeam = acc.find(team => team.groupTeamId === checker.groupTeamId)
+      //   if (existingTeam) {
+      //     if (checker.isLeader) {
+      //       existingTeam.leaderId = checker.memberId
+      //     } else {
+      //       existingTeam.userIds.push(checker.memberId)
+      //     }
+      //   } else {
+      //     acc.push({
+      //       groupTeamId: checker.groupTeamId,
+      //       leaderId: checker.isLeader ? checker.memberId : '',
+      //       userIds: checker.isLeader ? [] : [checker.memberId]
+      //     })
+      //   }
+      //   return acc
+      // }, []),
+      teamItemList: formData.value.teamItemList.reduce((acc: any[], item: any) => {
+        const existingGroup = acc.find(
+          group => group.groupTeamId === item.groupTeamId
+        );
+        if (existingGroup) {
+          // 避免重复添加相同的 userId,且不添加 leaderId
+          if (!item.isLeader && !existingGroup.userIds.includes(item.memberId)) {
+            existingGroup.userIds.push(item.memberId);
           }
         } else {
           acc.push({
-            groupTeamId: checker.groupTeamId,
-            leaderId: checker.isLeader ? checker.memberId : '',
-            userIds: checker.isLeader ? [] : [checker.memberId]
-          })
+            groupTeamId: item.groupTeamId,
+            leaderId: item.isLeader ? item.memberId : '',
+            userIds: item.isLeader ? [] : [item.memberId]
+          });
         }
-        return acc
+        return acc;
       }, []),
       useUnitName: formData.value?.useUnitName?.name,
       orderItems: equipList.value

+ 10 - 10
yudao-ui-admin-vue3/src/views/pressure2/pipetaskorder/components/AddInspectionplanDetail.vue

@@ -91,16 +91,16 @@
         </el-select>
       </el-form-item>
 
-      <el-form-item label="检验方案批准人" prop="inspectionApproveId">
-        <el-select v-model="formData.inspectionApproveId" clearable placeholder="请选择">
-          <el-option
-            v-for="item in optionList.schemeApproveList"
-            :key="item.id"
-            :label="item.nickname"
-            :value="item.id"
-          />
-        </el-select>
-      </el-form-item>
+<!--      <el-form-item label="检验方案批准人" prop="inspectionApproveId">-->
+<!--        <el-select v-model="formData.inspectionApproveId" clearable placeholder="请选择">-->
+<!--          <el-option-->
+<!--            v-for="item in optionList.schemeApproveList"-->
+<!--            :key="item.id"-->
+<!--            :label="item.nickname"-->
+<!--            :value="item.id"-->
+<!--          />-->
+<!--        </el-select>-->
+<!--      </el-form-item>-->
     </el-form>
     <template #footer>
       <el-button @click="approvalUserVisible = false">取消</el-button>

+ 4 - 3
yudao-ui-admin-vue3/src/views/pressure2/pipetaskorder/components/ServiceRecordList.vue

@@ -99,7 +99,7 @@
 
   <!-- 检验录入-模板 -->
   <CustomDialog v-model="showInlineEditRecord" title="检验录入" :show-footer="false" fullscreen>
-    <SpreadViewer :initData="editData" ref="editSpreadRecordRef" @saveSuccess="saveSuccessRecord"/>
+    <SpreadViewer :initData="editData" ref="editSpreadRecordRef" @saveSuccess="saveSuccessRecord" @close="showInlineEditRecord = false"/>
   </CustomDialog>
 
   <!-- 查看版本详情的弹窗 -->
@@ -135,7 +135,7 @@
         </el-select>
       </el-form-item>
 
-      <el-form-item label="检验方案批准人" prop="inspectionApproveId">
+      <el-form-item label="检验方案批准人" prop="inspectionApproveId" v-if="props.businessType !== 400">
         <el-select v-model="formData.inspectionApproveId" clearable placeholder="请选择">
           <el-option
             v-for="item in optionList.schemeApproveList"
@@ -506,6 +506,7 @@ const handleRefresh = async () => {
   await handleGetTemplate()
   historyVersionParams.value.pageNo = 1
   await fetchHisVersionPage(true)
+  initPreview()
 }
 
 // 历史记录版本查询参数
@@ -841,7 +842,7 @@ const initPreview=()=>{
 onMounted(async () => {
   await updateServiceOrderDialogFormData()
   await handleRefresh()
-  initPreview()
+  // initPreview()
 })
 </script>
 

+ 1 - 1
yudao-ui-admin-vue3/src/views/pressure2/pipetaskorder/components/TaskOrderDetailDialog.vue

@@ -329,7 +329,7 @@
       </ContentWrap>
       <ContentWrap
         title="审核"
-        v-if="supportingDocsAuditDataList.length > 0">
+        v-if="supportingDocsAuditDataList.length > 0 && inPageMode">
         <SmartTable
           v-model:columns="supportingDocsAuditColumns"
           :data="supportingDocsAuditDataList"

+ 61 - 124
yudao-ui-admin-vue3/src/views/pressure2/pipetaskorder/detail.vue

@@ -149,34 +149,19 @@
               />
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="24">
             <!-- 检验员 teamList -->
-            <el-form-item label="检验员" prop="teamList">
-              <div class="flex items-center gap-2">
-<!--                <div v-if="selectedCheckers.length > 0" class="selected-checkers flex-1">
-                  <el-tag
-                    v-for="checker in selectedCheckers"
-                    :key="checker.memberId"
-                    class="mx-1"
-                    closable
-                    @close="removeChecker(checker.memberId)"
-                  >
-                    <span v-if="checker.isLeader" class="leader-tag">组</span>
-                    {{ checker.member?.nickname }}
-                  </el-tag>
-                </div>
-                <el-button type="primary" link @click="openCheckerSelect">
-                  选择检验员
-                </el-button>-->
-                <el-checkbox-group v-model="formData.inspectors"
-                                   style="width: 100vh;padding-left: 10px;">
-                  <el-row :gutter="20">
-                    <el-col :span="3" v-for="user in userList" :key="user.id">
-                      <el-checkbox :label="user.nickname" :value="user.id"/>
-                    </el-col>
-                  </el-row>
-                </el-checkbox-group>
-              </div>
+            <el-form-item label="检验员" prop="teamItemList">
+              <CheckerSelect
+                ref="checkerSelectRef"
+                v-model="selectedCheckers"
+                :dept-id="userStore.getUser.deptId?.toString() || '1'"
+                :disabled="false"
+                :has-data="true"
+                empty-text="暂无检验员数据"
+                :multiple="true"
+                @change="handleCheckerChange"
+              />
             </el-form-item>
           </el-col>
         </el-row>
@@ -489,25 +474,6 @@
         </el-col>
       </el-row>
     </ContentWrap>
-    <!-- 检验员选择弹窗 -->
-    <el-dialog
-      v-model="checkerSelectVisible"
-      title="选择检验员"
-      append-to-body
-      width="600px"
-    >
-      <CheckerSelect
-        v-model="currentSelectedCheckerIds"
-        @change="handleCheckerChange"
-      />
-      <template #footer>
-        <div class="flex justify-end">
-          <el-button @click="checkerSelectVisible = false">取消</el-button>
-          <el-button type="primary" @click="confirmCheckerSelect">确定</el-button>
-        </div>
-      </template>
-    </el-dialog>
-
     <!-- 添加设备弹窗 -->
     <PipeAddEquipDialog
       v-model:visible="addEquipVisible"
@@ -581,10 +547,10 @@
 </template>
 
 <script setup lang="ts">
-import {computed, onMounted, ref, watch} from 'vue'
+import {computed, nextTick, onMounted, ref, watch} from 'vue'
 import {ElMessage, ElMessageBox} from 'element-plus'
 import {PipeTaskOrderApi} from '@/api/pressure2/pipetaskorder'
-import CheckerSelect from '@/views/pressure2/equipboilerscheduling/components/CheckerSelect.vue'
+import CheckerSelect, { type CheckerItem } from '@/views/pressure2/components/CheckerSelect'
 import dayjs from 'dayjs'
 import {DICT_TYPE, getStrDictOptions} from '@/utils/dict'
 import DeptSelect from '../equipboilerscheduling/components/DeptSelect.vue'
@@ -605,16 +571,18 @@ import {Icon} from "@/components/Icon";
 import PipeBatchEditForm from "@/views/pressure2/planNew/components/PipeBatchEditForm.vue";
 import {PipeEquipmentVO} from "@/api/pressure2/pipeequipment";
 import {UserQualificationsApi} from "@/api/pressure2/userQualifications";
+import {useUserStoreWithOut} from "@/store/modules/user";
 
 const route = useRoute()
 const orderDetail = ref()
 const tagsViewStore = useTagsViewStore()
+const userStore = useUserStoreWithOut()
 const checkTypeMap = PressurePipeCheckTypeMap
 const useInputUseUnitName = ref(false)
 const useInputUnitName = ref(false)
 const formData = ref({
   checkDate: '',
-  inspectors: [] as string[],
+  teamItemList: [] as string[],
   unitName: {
     name: '',
     id: '',
@@ -676,11 +644,11 @@ const pipeTypeOptions = getStrDictOptions(DICT_TYPE.PIPE_TYPE)
 
 const loading = ref(false)
 
-// 检验员选择相关
-const checkerSelectVisible = ref(false)
+// 检验员组件引用
+const checkerSelectRef = ref()
+
+// 选中的检验员对象列表
 const selectedCheckers = ref<any[]>([])
-const currentSelectedCheckerIds = ref<any[]>([])
-const tempSelectedCheckers = ref<any[]>([])
 
 // 记录每个区域下已选择的街道
 const areaStreetMap = ref(new Map<number, number[]>())
@@ -785,7 +753,6 @@ const getDetail = async () => {
     formData.value = {
       ...formData.value,
       checkDate: formatArrayDate(orderDetail.value?.checkDate || []),
-      inspectors: [],
       unitName: {
         name: orderDetail.value?.unitName || '',
         id: ''
@@ -835,9 +802,7 @@ const getDetail = async () => {
       payerMail: orderDetail.value?.payerMail || ''
     }
 
-
-    // 更新检验员数据
-    /*const inspectors = orderDetail.value?.teamItemList?.flatMap((team: any) => {
+    const teamItemList = orderDetail.value?.teamItemList?.flatMap((team: any) => {
       const teamMembers: any[] = []
 
       // 处理组长
@@ -869,13 +834,18 @@ const getDetail = async () => {
       }
 
       return teamMembers
-    }) || []*/
-    const inspectors = orderDetail.value?.userList
-    console.log(inspectors)
-    userList.value = await UserQualificationsApi.getUserPipeAll()
-    if (inspectors.length > 0) {
-      selectedCheckers.value = inspectors
-      formData.value.inspectors = inspectors.map(c => c.id)
+    }) || []
+
+    if (teamItemList.length > 0) {
+      selectedCheckers.value = teamItemList
+      formData.value.teamItemList = teamItemList
+    }
+
+    // 加载检验员列表(默认当前登录人的部门)
+    const deptId = userStore.getUser.deptId?.toString()
+    if (deptId) {
+        await nextTick()
+        checkerSelectRef.value?.getCheckerList(deptId)
     }
 
     equipList.value = orderDetail.value?.orderItems || []
@@ -887,13 +857,15 @@ const getDetail = async () => {
   }
 }
 
-/** 打开检验员选择弹窗 */
-const openCheckerSelect = () => {
-  checkerSelectVisible.value = true
-  // 设置当前选中的检验员
-  currentSelectedCheckerIds.value = selectedCheckers.value.map(c => c.groupTeamId + ':' + c.memberId)
-  tempSelectedCheckers.value = [...selectedCheckers.value]
+/** 处理检验员变化 */
+const handleCheckerChange = (checkers) => {
+  console.log('检验员变化:', checkers)
+  // 这里可以根据需要进行额外处理
+  selectedCheckers.value = checkers
+  // 同步更新 formData.value.teamItemList
+  formData.value.teamItemList = checkers
 }
+
 // 设备查询相关
 const handleEquipQuery = async () => {
   loading.value = true
@@ -938,25 +910,6 @@ onMounted(async () => {
   // await handleEquipQuery()
 })
 
-/** 处理检验员变化 */
-const handleCheckerChange = (checkers) => {
-  tempSelectedCheckers.value = checkers
-  currentSelectedCheckerIds.value = checkers.map(c => c.groupTeamId + ':' + c.memberId)
-}
-
-/** 确认检验员选择 */
-const confirmCheckerSelect = () => {
-  selectedCheckers.value = [...tempSelectedCheckers.value]
-  formData.value.inspectors = selectedCheckers.value.map(c => c.memberId)
-  checkerSelectVisible.value = false
-}
-
-/** 移除检验员 */
-const removeChecker = (memberId: string) => {
-  selectedCheckers.value = selectedCheckers.value.filter(c => c.memberId !== memberId)
-  formData.value.inspectors = selectedCheckers.value.map(c => c.memberId)
-}
-
 /** 禁用日期 */
 const disabledDate = (time: Date) => {
   // 禁用过去的日期
@@ -998,8 +951,6 @@ const handleEquipSortChange = (sort) => {
   // 实现设备排序逻辑
 }
 
-const userList = ref([])
-
 const tableRef = ref()
 const selectedRows = ref([]) // 选中的行
 const selectedDetailRows = ref([]) // 选中的行
@@ -1305,8 +1256,6 @@ const handleGenerateAcceptance = () => {
       ElMessage.warning('请选择检验员')
       return
     }
-
-    // 二次确认
     ElMessageBox.prompt(
       '确认修改任务单吗,请填写修改理由',
       '操作确认',
@@ -1337,36 +1286,6 @@ const submitAcceptance = async (reason: string) => {
   try {
     loading.value = true
 
-    // Start with a deep copy of the original orderDetail to ensure all fields are present
-    //const submitData = JSON.parse(JSON.stringify(orderDetail.value || {}));
-
-    // // Define fields that are directly updatable from formData
-    // const formEditableFields = [
-    //   'checkDate', 'unitContact', 'unitEmail', 'unitPhone',
-    //   'zipCode', 'remark', 'email', 'isAttach',
-    //   'sendType', 'vehicle', 'payType', 'acceptType',
-    //   'payAmount', 'serviceAmount', 'shouldAmount', 'reduceFee',
-    //   'useUnitName', 'useUnitSocialCreditCode', 'useUnitAddress',
-    //   'useUnitZipcode', 'useUnitContact', 'useUnitPhone',
-    //   'socialCreditCode', 'recipient', 'recipientPhone', 'recipientEmail',
-    //   'deptPhone', 'checkDate', 'manager', 'acceptor',
-    //   'feeNature', 'actualAmount', 'feeDate', 'isPay',
-    //   'payerContactName', 'payerContact', 'payerMail'
-    // ];
-    //
-    // // Update submitData with values from formData for editable fields
-    // formEditableFields.forEach(field => {
-    //   if (formData.value.hasOwnProperty(field)) {
-    //     submitData[field] = formData.value[field];
-    //   }
-    // });
-    //
-    // submitData.unitName = formData.value.unitName.name;
-    // submitData.useUnitName = formData.value.useUnitName.name;
-    //
-    // // 更新orderItems,从可能修改的equipList
-    // submitData.orderItems = equipList.value;
-
     // 组装提交数据
     const submitData = {
       id: orderDetail.value?.id,
@@ -1418,7 +1337,25 @@ const submitAcceptance = async (reason: string) => {
         }
         return acc
       }, []),*/
-      userList: userList.value.filter(checker => formData.value.inspectors.includes(checker.id)),
+      // userList: selectedCheckers.value.map(checker => checker.member).filter(Boolean),
+      teamItemList: formData.value.teamItemList.reduce((acc: any[], item: any) => {
+        const existingGroup = acc.find(
+          group => group.groupTeamId === item.groupTeamId
+        );
+        if (existingGroup) {
+          // 避免重复添加相同的 userId,且不添加 leaderId
+          if (!item.isLeader && !existingGroup.userIds.includes(item.memberId)) {
+            existingGroup.userIds.push(item.memberId);
+          }
+        } else {
+          acc.push({
+            groupTeamId: item.groupTeamId,
+            leaderId: item.isLeader ? item.memberId : '',
+            userIds: item.isLeader ? [] : [item.memberId]
+          });
+        }
+        return acc;
+      }, []),
       useUnitName: formData.value?.useUnitName?.name,
       orderItems: equipList.value
     }