فهرست منبع

检验方案调整

xy 4 هفته پیش
والد
کامیت
d467f10821

+ 4 - 0
yudao-ui-admin-vue3/src/api/pressure2/boilertaskorder/index.ts

@@ -295,6 +295,10 @@ export const BoilerTaskOrderApi = {
   submitOpinionNoticeApproval: async (data) => {
     return await request.put({url: `/pressure2/boiler-task-order/order-item/initiateApproval`, data})
   },
+  // 检验方案: 不需要审核直接生成
+  generateInspectionPlan: async (data) => {
+    return await request.put({url: `/pressure2/boiler-task-order/order-item/initiateApproval/inspectionPlan/generate`, data})
+  },
 
   // 新增锅炉检验任务确认
   createBoilerTaskOrder: async (data: BoilerTaskOrderVO) => {

+ 4 - 1
yudao-ui-admin-vue3/src/api/pressure2/pipetaskorder/index.ts

@@ -293,7 +293,10 @@ export const PipeTaskOrderApi = {
   submitOpinionNoticeApproval: async (data) => {
     return await request.put({url: `/pressure2/pipe-task-order/order-item/initiateApproval`, data})
   },
-
+  // 检验方案: 不需要审核直接生成
+  generateInspectionPlan: async (data) => {
+    return await request.put({url: `/pressure2/pipe-task-order/order-item/initiateApproval/inspectionPlan/generate`, data})
+  },
   // 检验员-任务单-安全记录版本:列表
   getSafetyCheckRecordVersionPage: async (params: any) => {
     return await request.get({ url: `/pressure2/pipe-task-order-item-report-version/page`, params })

+ 111 - 30
yudao-ui-admin-vue3/src/views/pressure2/boilertaskorder/components/AddInspectionplan.vue

@@ -9,30 +9,60 @@
 
 <template>
   <Dialog v-model="dialogVisible" :title="title" width="550">
-    <ElForm ref="formRef" :model="formData" :labelWidth="120">
-      <template v-for="item in schema" :key="item.field">
-        <el-form-item v-if="!getIsHidden(item)" :label="item.label" :prop="item.field" :rules="item.rules">
-          <component
-            :is="componentMap[item.component]"
-            :key="item.field"
-            v-model="formData[item.field]"
-            v-bind="item.componentProps"
-          >
-            <template v-if="item.component === 'Select'">
-              <el-option
-                v-for="option in item.componentProps?.options"
-                :key="option.value"
-                :label="option.label"
-                :value="option.value"
-              />
-            </template>
-          </component>
-        </el-form-item>
-      </template>
-      <el-form-item label="">
-        <span>{{ `将自动为勾选的${equipCount}台设备添加检验方案` }}</span>
-      </el-form-item>
-    </ElForm>
+    <el-tabs v-model="inspectionPlanType" type="border-card" @tab-change="handleTabChange">
+      <el-tab-pane label="通用" name="commPlan">
+        <ElForm ref="formRef" :model="formData" :labelWidth="120">
+          <template v-for="item in schema" :key="item.field">
+            <el-form-item v-if="!getIsHidden(item)" :label="item.label" :prop="item.field" :rules="item.rules">
+              <component
+                :is="componentMap[item.component]"
+                :key="item.field"
+                v-model="formData[item.field]"
+                v-bind="item.componentProps"
+              >
+                <template v-if="item.component === 'Select'">
+                  <el-option
+                    v-for="option in item.componentProps?.options"
+                    :key="option.value"
+                    :label="option.label"
+                    :value="option.value"
+                  />
+                </template>
+              </component>
+            </el-form-item>
+          </template>
+          <el-form-item label="">
+            <span>{{ `将自动为勾选的${equipCount}台设备添加检验方案` }}</span>
+          </el-form-item>
+        </ElForm>
+      </el-tab-pane>
+      <el-tab-pane label="自编" name="selfPlan">
+        <ElForm ref="formRef" :model="formData" :labelWidth="120">
+          <template v-for="item in schema" :key="item.field">
+            <el-form-item v-if="!getIsHidden(item)" :label="item.label" :prop="item.field" :rules="item.rules">
+              <component
+                :is="componentMap[item.component]"
+                :key="item.field"
+                v-model="formData[item.field]"
+                v-bind="item.componentProps"
+              >
+                <template v-if="item.component === 'Select'">
+                  <el-option
+                    v-for="option in item.componentProps?.options"
+                    :key="option.value"
+                    :label="option.label"
+                    :value="option.value"
+                  />
+                </template>
+              </component>
+            </el-form-item>
+          </template>
+          <el-form-item label="">
+            <span>{{ `将自动为勾选的${equipCount}台设备添加检验方案` }}</span>
+          </el-form-item>
+        </ElForm>
+      </el-tab-pane>
+    </el-tabs>
     <template #footer>
       <el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button>
       <el-button @click="dialogVisible = false">取 消</el-button>
@@ -43,11 +73,13 @@
 import { FormSchema } from '@/types/form'
 import { ElForm } from 'element-plus'
 import { isFunction } from '@/utils/is'
+import {getPressureReportTemplateListNoLimit} from "@/api/pressure2/reportTemplate";
+import {PressureBoilerCheckTypeMap} from "@/utils/constants";
 
 const emits = defineEmits(['success'])
 const dialogVisible = ref(false) // 弹窗的是否展示
 const title = ref('')
-
+const inspectionPlanType = ref('selfPlan')
 const formLoading = ref(false) // 表单的加载中
 const formRef = ref<InstanceType<typeof ElForm>>()
 const formData = ref<Recordable>({})
@@ -57,6 +89,7 @@ const options = ref<{
   value: string
   [k:string]: any
 }[]>([])  
+const currentParams = ref<Record<string, any>>({}) // 保存当前参数,用于标签切换时重新加载  
 
 const componentMap = {
   Input: 'el-input',
@@ -109,17 +142,65 @@ const getIsHidden = (item: FormSchema) => {
 /** 打开弹窗 */
 const open = (params: Record<string, any>, titleText: string) => {
   title.value = titleText
-  options.value = params.options || []
+  currentParams.value = params // 保存参数
+  getInspectionPlanData(params)
+
+  dialogVisible.value = true
+  resetForm()
+}
+
+const getInspectionPlanData = async (params: Record<string, any>) => {
+  // 查询检验方案模板数据
+  const optionsResult = ref<any[]>([])
+  const searchParams = { type: '6',reportType : 600 }
+  const response = await getPressureReportTemplateListNoLimit({...searchParams, pageNo: 1, pageSize: 100, status: 200})
+  optionsResult.value = response?.data?.list || response?.list || response || []
+
+  // 根据 inspectionPlanType 筛选数据
+  let filteredOptions = optionsResult.value
+  if (inspectionPlanType.value === 'commPlan') {
+    // 通用方案:筛选 reportType=900 且 pjType=5 的数据
+    filteredOptions = optionsResult.value.filter(item => item.reportType === 900 && item.pjType === 3)
+  } else if (inspectionPlanType.value === 'selfPlan') {
+    // 自编方案:筛选 reportType=500 且 pjType=3 的数据
+    filteredOptions = optionsResult.value.filter(item => item.reportType === 500 && item.pjType === 5)
+  }
+
+  const equipType = params.taskOrderDetail.orderItems[0]?.typeName;
+  const checkType = PressureBoilerCheckTypeMap[params.taskOrderDetail?.checkType] || '-'
+
+  const newParams = {
+    options: filteredOptions.map(item => ({
+      ...item,
+      label: item.tbName,
+      reportName: equipType + checkType + "-" + item.tbName,
+      value: item.id
+    })),
+    formData: {
+      orderId: params.taskOrderDetail.id,
+    },
+    equipCount: unref(params.selectedEquips).length
+  }
+
+  options.value = newParams.options || []
+
   const firstOptionValue = options.value[0]?.value
   const reportName = options.value[0]?.reportName
   formData.value = {
-    ...params.formData,
+    ...newParams.formData,
     templateId: firstOptionValue,
     reportName: reportName,
+    isSelfType: inspectionPlanType.value === 'selfPlan'
+  }
+  equipCount.value = newParams.equipCount || 0
+
+}
+
+// 标签页切换事件
+const handleTabChange = () => {
+  if (currentParams.value && Object.keys(currentParams.value).length > 0) {
+    getInspectionPlanData(currentParams.value)
   }
-  equipCount.value = params.equipCount || 0
-  dialogVisible.value = true
-  resetForm()
 }
 
 /** 提交表单 */

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

@@ -20,12 +20,13 @@
     <div class="operation-inner relative">
       <div class="btn-list">
         <template v-if="['add', 'edit'].includes(isEdit)">
-          <el-button type="primary" @click="handleSubmitBefore">提交审核</el-button>
-<!--          <el-button type="primary" plain @click="handleEditSpreadRecord">编辑封面</el-button>-->
+          <el-button type="primary" @click="handleSubmitBefore" v-if="props.editInspectionplanParams.isSelfType">提交审核</el-button>
+          <el-button v-else @click="handleSubmitNotApproval">提交</el-button>
+          <!--          <el-button type="primary" plain @click="handleEditSpreadRecord">编辑封面</el-button>-->
         </template>
         <el-button type="default" plain @click="handleCloseModal">取 消</el-button>
       </div>
-      <div class="operation-item" style="max-height: calc(100% / 2); overflow-y: auto">
+      <div class="operation-item" style="max-height: calc(100% / 2); overflow-y: auto" v-if="props.editInspectionplanParams.isSelfType">
         <div class="item-header"> 方案上传 </div>
         <div class="item-content">
           <el-upload
@@ -90,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>
@@ -306,6 +307,20 @@ const handleSubmitOperationReport = async (manualUrl = '') => {
     handleCloseModal()
   }
 }
+// 提交保存 - 不需要审核
+const handleSubmitNotApproval = async () => {
+  // 弹窗选择审批人
+  const { reportId} = props.editInspectionplanParams
+  const params: Recordable = {
+    id: reportId,
+    reportType: PressureReportType['INSPECTIONPLAN'],
+  }
+  const submitRes = await BoilerTaskOrderApi.generateInspectionPlan(params)
+  if (submitRes) {
+    ElMessage.success('提交成功')
+    handleCloseModal()
+  }
+}
 const handleSubmitConfirm = () => {
   approvalUserVisible.value = false
   // if(props.isEdit === 'add'){

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

@@ -27,6 +27,7 @@
             type="success"
             @click="openCheckerSelectionDialog"
             :disabled="isTaskCancelled || isTaskCompleted"
+            v-if="checkRole(['Boiler Director','admin'])"
           >修改检验人员</el-button
           >
           <!--          <el-button v-if="props.type !== 'checker'" type="success" @click="openCheckerSelectionDialog" :disabled="isTaskCancelled">修改检验人员</el-button>-->
@@ -34,6 +35,7 @@
             type="success"
             @click="handleModifyManager"
             :disabled="isTaskCancelled || isTaskCompleted"
+            v-if="checkRole(['Boiler Director','admin'])"
           >修改项目负责人</el-button
           >
           <el-button
@@ -967,6 +969,7 @@ import EditWorkBookReport from "@/views/pressure2/boilertaskorder/components/Edi
 import {EquipBoilerApi} from "@/api/pressure2/equipboiler";
 import {TaskOrderApi} from "@/api/pressure/taskorder";
 import OrderDialog from "@/views/pressure2/boilertaskorder/components/OrderDialog.vue";
+import {checkRole} from "@/utils/permission";
 
 
 const userStore = useUserStore()
@@ -1987,28 +1990,32 @@ const handleAddInspectionplanReport = async () => {
       return
     }
     // 查询检验方案模板数据
-    const options = ref<any[]>([])
-    const params = { type: '6',reportType : 600 }
-    const response = await getPressureReportTemplateListNoLimit({...params, pageNo: 1, pageSize: 100, status: 200})
-    options.value = response?.data?.list || response?.list || response || []
-
-    const equipType = taskOrderDetail.value.orderItems[0]?.typeName;
-    const checkType = PressureBoilerCheckTypeMap[taskOrderDetail.value?.checkType] || '-'
-
+    // const options = ref<any[]>([])
+    // const params = { type: '6',reportType : 600 }
+    // const response = await getPressureReportTemplateListNoLimit({...params, pageNo: 1, pageSize: 100, status: 200})
+    // options.value = response?.data?.list || response?.list || response || []
+    //
+    // const equipType = taskOrderDetail.value.orderItems[0]?.typeName;
+    // const checkType = PressureBoilerCheckTypeMap[taskOrderDetail.value?.checkType] || '-'
+    //
+    // const newParams = {
+    //   options: options.value.map(item => ({
+    //     ...item,
+    //     label: item.tbName,
+    //     reportName: equipType + checkType + "-" + item.tbName,
+    //     value: item.id
+    //   })),
+    //   formData: {
+    //     orderId: taskOrderDetail.value.id,
+    //   },
+    //   equipCount: unref(selectedEquips).length
+    // }
     const newParams = {
-      options: options.value.map(item => ({
-        ...item,
-        label: item.tbName,
-        reportName: equipType + checkType + "-" + item.tbName,
-        value: item.id
-      })),
-      formData: {
-        orderId: taskOrderDetail.value.id,
-      },
-      equipCount: unref(selectedEquips).length
+      selectedEquips : selectedEquips.value,
+      taskOrderDetail : taskOrderDetail.value,
     }
     // 添加检验方案逻辑
-    addInspectionplanRef.value?.open(newParams, '添加检验方案')
+    addInspectionplanRef.value?.open(newParams, '检验方案类型')
   } catch (error) {
     // 处理接口错误
     ElMessage({
@@ -2039,6 +2046,7 @@ const newHandleOperationReport = async (row, type: 'add' | 'edit' | 'view' | ''
       reportId: row.id,
       templateId: row.templateId,
       orderId: taskOrderDetail.value.id,
+      isSelfType: row.tbType === 500 && row.pjType === 5,
     }
     inspectionplanDetail.value = row
     if(!row.status){
@@ -2172,6 +2180,7 @@ const handleSuccessInspectionplan = async (info) => {
       orderId: taskOrderDetail.value.id,
       // prepareJson: templateInitJSON ? JSON.parse(templateInitJSON) : ''
       prepareJson: JSON.stringify(prepareJson),
+      isSelfType: info.isSelfType,
     }
     isEdit.value = 'add'
     AddInspectionplanDetailVisible.value = true

+ 112 - 31
yudao-ui-admin-vue3/src/views/pressure2/pipetaskorder/components/AddInspectionplan.vue

@@ -9,30 +9,60 @@
 
 <template>
   <Dialog v-model="dialogVisible" :title="title" width="550">
-    <ElForm ref="formRef" :model="formData" :labelWidth="120">
-      <template v-for="item in schema" :key="item.field">
-        <el-form-item v-if="!getIsHidden(item)" :label="item.label" :prop="item.field" :rules="item.rules">
-          <component
-            :is="componentMap[item.component]"
-            :key="item.field"
-            v-model="formData[item.field]"
-            v-bind="item.componentProps"
-          >
-            <template v-if="item.component === 'Select'">
-              <el-option
-                v-for="option in item.componentProps?.options"
-                :key="option.value"
-                :label="option.label"
-                :value="option.value"
-              />
-            </template>
-          </component>
-        </el-form-item>
-      </template>
-<!--      <el-form-item label="">-->
-<!--        <span>{{ `将自动为勾选的${equipCount}台设备添加检验方案` }}</span>-->
-<!--      </el-form-item>-->
-    </ElForm>
+    <el-tabs v-model="inspectionPlanType" type="border-card" @tab-change="handleTabChange">
+      <el-tab-pane label="通用" name="commPlan">
+        <ElForm ref="formRef" :model="formData" :labelWidth="120">
+          <template v-for="item in schema" :key="item.field">
+            <el-form-item v-if="!getIsHidden(item)" :label="item.label" :prop="item.field" :rules="item.rules">
+              <component
+                :is="componentMap[item.component]"
+                :key="item.field"
+                v-model="formData[item.field]"
+                v-bind="item.componentProps"
+              >
+                <template v-if="item.component === 'Select'">
+                  <el-option
+                    v-for="option in item.componentProps?.options"
+                    :key="option.value"
+                    :label="option.label"
+                    :value="option.value"
+                  />
+                </template>
+              </component>
+            </el-form-item>
+          </template>
+<!--          <el-form-item label="">-->
+<!--            <span>{{ `将自动为所有的设备添加检验方案` }}</span>-->
+<!--          </el-form-item>-->
+        </ElForm>
+      </el-tab-pane>
+      <el-tab-pane label="自编" name="selfPlan">
+        <ElForm ref="formRef" :model="formData" :labelWidth="120">
+          <template v-for="item in schema" :key="item.field">
+            <el-form-item v-if="!getIsHidden(item)" :label="item.label" :prop="item.field" :rules="item.rules">
+              <component
+                :is="componentMap[item.component]"
+                :key="item.field"
+                v-model="formData[item.field]"
+                v-bind="item.componentProps"
+              >
+                <template v-if="item.component === 'Select'">
+                  <el-option
+                    v-for="option in item.componentProps?.options"
+                    :key="option.value"
+                    :label="option.label"
+                    :value="option.value"
+                  />
+                </template>
+              </component>
+            </el-form-item>
+          </template>
+<!--          <el-form-item label="">-->
+<!--            <span>{{ `将自动为所有的设备添加检验方案` }}</span>-->
+<!--          </el-form-item>-->
+        </ElForm>
+      </el-tab-pane>
+    </el-tabs>
     <template #footer>
       <el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button>
       <el-button @click="dialogVisible = false">取 消</el-button>
@@ -43,11 +73,13 @@
 import { FormSchema } from '@/types/form'
 import { ElForm } from 'element-plus'
 import { isFunction } from '@/utils/is'
+import {getPressureReportTemplateListNoLimit} from "@/api/pressure2/reportTemplate";
+import {PressureBoilerCheckTypeMap, PressurePipeCheckTypeMap} from "@/utils/constants";
 
 const emits = defineEmits(['success'])
 const dialogVisible = ref(false) // 弹窗的是否展示
 const title = ref('')
-
+const inspectionPlanType = ref('selfPlan')
 const formLoading = ref(false) // 表单的加载中
 const formRef = ref<InstanceType<typeof ElForm>>()
 const formData = ref<Recordable>({})
@@ -56,7 +88,8 @@ const options = ref<{
   label: string
   value: string
   [k:string]: any
-}[]>([])  
+}[]>([])
+const currentParams = ref<Record<string, any>>({}) // 保存当前参数,用于标签切换时重新加载
 
 const componentMap = {
   Input: 'el-input',
@@ -109,17 +142,65 @@ const getIsHidden = (item: FormSchema) => {
 /** 打开弹窗 */
 const open = (params: Record<string, any>, titleText: string) => {
   title.value = titleText
-  options.value = params.options || []
+  currentParams.value = params // 保存参数
+  getInspectionPlanData(params)
+
+  dialogVisible.value = true
+  resetForm()
+}
+
+const getInspectionPlanData = async (params: Record<string, any>) => {
+  // 查询检验方案模板数据
+  const optionsResult = ref<any[]>([])
+  const searchParams = { type: '6',reportType : 600 }
+  const response = await getPressureReportTemplateListNoLimit({...searchParams, pageNo: 1, pageSize: 100, status: 200})
+  optionsResult.value = response?.data?.list || response?.list || response || []
+
+  // 根据 inspectionPlanType 筛选数据
+  let filteredOptions = optionsResult.value
+  if (inspectionPlanType.value === 'commPlan') {
+    // 通用方案
+    filteredOptions = optionsResult.value.filter(item => item.reportType === 900 && item.pjType === 4)
+  } else if (inspectionPlanType.value === 'selfPlan') {
+    // 自编方案
+    filteredOptions = optionsResult.value.filter(item => item.reportType === 500 && item.pjType === 5)
+  }
+
+  const equipType = params.taskOrderDetail.orderItems[0]?.pipeCategoryName;
+  const checkType = PressurePipeCheckTypeMap[params.taskOrderDetail?.checkType] || '-'
+
+  const newParams = {
+    options: filteredOptions.map(item => ({
+      ...item,
+      label: item.tbName,
+      reportName: equipType + checkType + "-" + item.tbName,
+      value: item.id
+    })),
+    formData: {
+      orderId: params.taskOrderDetail.id,
+    },
+    equipCount: unref(params.selectedEquips).length
+  }
+
+  options.value = newParams.options || []
+
   const firstOptionValue = options.value[0]?.value
   const reportName = options.value[0]?.reportName
   formData.value = {
-    ...params.formData,
+    ...newParams.formData,
     templateId: firstOptionValue,
     reportName: reportName,
+    isSelfType: inspectionPlanType.value === 'selfPlan'
+  }
+  equipCount.value = newParams.equipCount || 0
+
+}
+
+// 标签页切换事件
+const handleTabChange = () => {
+  if (currentParams.value && Object.keys(currentParams.value).length > 0) {
+    getInspectionPlanData(currentParams.value)
   }
-  equipCount.value = params.equipCount || 0
-  dialogVisible.value = true
-  resetForm()
 }
 
 /** 提交表单 */

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

@@ -20,12 +20,13 @@
     <div class="operation-inner relative">
       <div class="btn-list">
         <template v-if="['add', 'edit'].includes(isEdit)">
-          <el-button type="primary" @click="handleSubmitBefore">提交审核</el-button>
+          <el-button type="primary" @click="handleSubmitBefore" v-if="props.editInspectionplanParams.isSelfType">提交审核</el-button>
+          <el-button v-else @click="handleSubmitNotApproval">提交</el-button>
 <!--          <el-button type="primary" plain @click="handleEditSpreadRecord">编辑封面</el-button>-->
         </template>
         <el-button type="default" plain @click="handleCloseModal">取 消</el-button>
       </div>
-      <div class="operation-item" style="max-height: calc(100% / 2); overflow-y: auto">
+      <div class="operation-item" style="max-height: calc(100% / 2); overflow-y: auto" v-if="props.editInspectionplanParams.isSelfType">
         <div class="item-header"> 方案上传 </div>
         <div class="item-content">
           <el-upload
@@ -92,16 +93,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>
@@ -317,6 +318,22 @@ const handleSubmitOperationReport = async (manualUrl = '') => {
     handleCloseModal()
   }
 }
+
+// 提交保存 - 不需要审核
+const handleSubmitNotApproval = async () => {
+  // 弹窗选择审批人
+  const { reportId} = props.editInspectionplanParams
+  const params: Recordable = {
+    id: reportId,
+    reportType: PressureReportType['INSPECTIONPLAN'],
+  }
+  const submitRes = await PipeTaskOrderApi.generateInspectionPlan(params)
+  if (submitRes) {
+    ElMessage.success('提交成功')
+    handleCloseModal()
+  }
+}
+
 const handleSubmitConfirm = () => {
   approvalUserVisible.value = false
   // if(props.isEdit === 'add'){

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

@@ -27,6 +27,7 @@
             type="success"
             @click="openCheckerSelectionDialog"
             :disabled="isTaskCancelled || isTaskCompleted"
+            v-if="checkRole(['Pipeline Director','admin'])"
           >修改检验人员</el-button
           >
           <!--          <el-button v-if="props.type !== 'checker'" type="success" @click="openCheckerSelectionDialog" :disabled="isTaskCancelled">修改检验人员</el-button>-->
@@ -34,6 +35,7 @@
             type="success"
             @click="handleModifyManager"
             :disabled="isTaskCancelled || isTaskCompleted"
+            v-if="checkRole(['Pipeline Director','admin'])"
           >修改项目负责人</el-button
           >
           <el-button
@@ -992,6 +994,7 @@ import {EquipPipeSchedulingDetailVO} from "@/api/pressure2/pipescheduling";
 import OrderDialog from "@/views/pressure2/boilertaskorder/components/OrderDialog.vue";
 import calcCheckItemFee from './calcCheckItemFee.vue'
 import {InspectionNatureTypeApi} from "../../../../api/pressure2/inspectionnaturetype";
+import {checkRole} from "@/utils/permission";
 
 
 const userStore = useUserStore()
@@ -2056,28 +2059,32 @@ const handleAddInspectionplanReport = async () => {
       return
     }
     // 查询检验方案模板数据
-    const options = ref<any[]>([])
-    const params = { type: '6',reportType : 600 }
-    const response = await getPressureReportTemplateListNoLimit({...params, pageNo: 1, pageSize: 100, status: 200})
-    options.value = response?.data?.list || response?.list || response || []
-
-    const equipType = taskOrderDetail.value.orderItems[0]?.pipeCategoryName;
-    const checkType = PressureBoilerCheckTypeMap[taskOrderDetail.value?.checkType] || '-'
-
+    // const options = ref<any[]>([])
+    // const params = { type: '6',reportType : 600 }
+    // const response = await getPressureReportTemplateListNoLimit({...params, pageNo: 1, pageSize: 100, status: 200})
+    // options.value = response?.data?.list || response?.list || response || []
+    //
+    // const equipType = taskOrderDetail.value.orderItems[0]?.pipeCategoryName;
+    // const checkType = PressurePipeCheckTypeMap[taskOrderDetail.value?.checkType] || '-'
+    //
+    // const newParams = {
+    //   options: options.value.map(item => ({
+    //     ...item,
+    //     label: item.tbName,
+    //     reportName: equipType + checkType + "-" + item.tbName,
+    //     value: item.id
+    //   })),
+    //   formData: {
+    //     orderId: taskOrderDetail.value.id,
+    //   },
+    //   equipCount: unref(selectedEquips).length
+    // }
     const newParams = {
-      options: options.value.map(item => ({
-        ...item,
-        label: item.tbName,
-        reportName: equipType + checkType + "-" + item.tbName,
-        value: item.id
-      })),
-      formData: {
-        orderId: taskOrderDetail.value.id,
-      },
-      equipCount: unref(selectedEquips).length
+      selectedEquips : selectedEquips.value,
+      taskOrderDetail : taskOrderDetail.value,
     }
     // 添加检验方案逻辑
-    addInspectionplanRef.value?.open(newParams, '添加检验方案')
+    addInspectionplanRef.value?.open(newParams, '检验方案类型')
   } catch (error) {
     // 处理接口错误
     ElMessage({
@@ -2108,6 +2115,7 @@ const newHandleOperationReport = async (row, type: 'add' | 'edit' | 'view' | ''
       reportId: row.id,
       templateId: row.templateId,
       orderId: taskOrderDetail.value.id,
+      isSelfType: row.tbType === 500 && row.pjType === 5,
     }
     inspectionplanDetail.value = row
     if(!row.status){
@@ -2241,6 +2249,7 @@ const handleSuccessInspectionplan = async (info) => {
       orderId: taskOrderDetail.value.id,
       // prepareJson: templateInitJSON ? JSON.parse(templateInitJSON) : ''
       prepareJson: JSON.stringify(prepareJson),
+      isSelfType: info.isSelfType,
     }
     isEdit.value = 'add'
     AddInspectionplanDetailVisible.value = true