Browse Source

档案库

xuzhancheng 4 weeks ago
parent
commit
5991daa107

+ 6 - 1
yudao-ui-admin-vue3/src/views/pressure2/pipeequipment/PipeEquipmentForm.vue

@@ -259,6 +259,8 @@
         <PipeEquipmentDetailList 
           ref="pipeEquipmentDetailFormRef" 
           v-model:rows="formData.detailSaveReqVOS"
+          :project-no="formData.projectNo"
+          :project-name="formData.projectName"
         />
       </div>
 
@@ -616,7 +618,10 @@ const handleDetailSuccess = (detail: EquipPipeDetailVO,formType) => {
 
 // 打开管道明细表单
 const openPipeDetailForm = () => {
-  pipeDetailFormRef.value?.open('create')
+  pipeDetailFormRef.value?.open('create', undefined, {
+    projectNo: formData.value.projectNo,
+    projectName: formData.value.projectName
+  })
 }
 
 // 切换历史信息显示/隐藏

+ 14 - 9
yudao-ui-admin-vue3/src/views/pressure2/pipeequipment/components/PipeEquipmentDetailForm.vue

@@ -12,6 +12,12 @@
       <div class="form-section">
         <h3>管道设计安装信息</h3>
         <div class="form-grid">
+          <el-form-item label="工程号" prop="projectNo">
+            <el-input v-model="formData.projectNo" placeholder="请输入工程号" disabled />
+          </el-form-item>
+          <el-form-item label="工程名称" prop="projectName">
+            <el-input v-model="formData.projectName" placeholder="请输入工程名称" disabled />
+          </el-form-item>
           <el-form-item label="管道名称" prop="pipeName">
             <el-input v-model="formData.pipeName" placeholder="请输入管道名称" />
           </el-form-item>
@@ -70,9 +76,6 @@
               />
             </el-select>
           </el-form-item>
-          <el-form-item label="工程名称" prop="projectName">
-            <el-input v-model="formData.projectName" placeholder="请输入工程名称" />
-          </el-form-item>
           <el-form-item label="敷设方式" prop="layingMode">
             <el-input v-model="formData.layingMode" placeholder="请输入敷设方式" />
           </el-form-item>
@@ -149,9 +152,6 @@
              </el-select>
           </el-form-item>
 
-          <el-form-item label="工程号" prop="projectNo">
-            <el-input v-model="formData.projectNo" placeholder="请输入工程号" />
-          </el-form-item>
           <el-form-item label="使用证号" prop="useno">
             <el-input v-model="formData.useno" placeholder="请输入使用证号" />
           </el-form-item>
@@ -269,17 +269,23 @@ const formRules = reactive({
 })
 
 // 打开弹窗
-const open = async (type: string, detail?: EquipPipeDetailVO) => {
+const open = async (type: string, detail?: EquipPipeDetailVO, projectInfo?: { projectNo?: string; projectName?: string }) => {
   dialogVisible.value = true
   dialogTitle.value = t('action.' + type) + '管道设计安装信息'
   formType.value = type
   formData.value = {} as EquipPipeDetailVO // 重置表单
   formRef.value?.resetFields()
 
+  // 从主表带出工程号和工程名称
+  if (projectInfo) {
+    formData.value.projectNo = projectInfo.projectNo || ''
+    formData.value.projectName = projectInfo.projectName || ''
+  }
+
   // 修改时,设置数据
   if (detail) {
     // 格式化日期字段
-    const dateFields = ['commissioningDate', 'constructionStartDate', 'handoverDate', 'nextLegalCheckDate', 'nextYearCheckDate']
+    const dateFields = ['commissioningDate', 'constructionStartDate', 'handoverDate', 'nextLegalCheckDate', 'nextYearCheckDate', 'lastalldate', 'lastonlinedate']
     const formattedDetail = { ...detail }
     dateFields.forEach(field => {
       if (formattedDetail[field]) {
@@ -287,7 +293,6 @@ const open = async (type: string, detail?: EquipPipeDetailVO) => {
       }
     })
     formData.value = formattedDetail
-    console.log(formData.value)
   }
 }
 defineExpose({ open }) // 暴露 open 方法

+ 7 - 2
yudao-ui-admin-vue3/src/views/pressure2/pipeequipment/components/PipeEquipmentDetailList.vue

@@ -69,7 +69,7 @@
   <PipeEquipmentDetailForm ref="detailFormRef" @success="handleDetailSuccess" />
 </template>
 <script setup lang="ts">
-import { ref, reactive, onMounted, watch } from 'vue'
+import { ref, reactive, onMounted, watch, computed } from 'vue'
 import { EquipPipeApi, EquipPipeDetailVO } from '@/api/pressure2/equippipe'
 import PipeEquipmentDetailForm from './PipeEquipmentDetailForm.vue'
 import { useMessage } from '@/hooks/web/useMessage'
@@ -80,6 +80,8 @@ const message = useMessage() // 消息弹窗
 const props = defineProps<{
   pipeEquipmentId?: string // 关联设备的id(主表的关联字段)
   rows?: EquipPipeDetailVO[] // 列表的数据
+  projectNo?: string // 主表的工程号
+  projectName?: string // 主表的工程名称
 }>()
 
 const pipeTypeOptions = computed(() => getStrDictOptions(DICT_TYPE.PIPE_TYPE))
@@ -132,7 +134,10 @@ watch(
 const handleDetail = (scope) => {
   if (!scope.row.id)
     scope.row.id = scope.$index
-  detailFormRef.value?.open('update', scope.row)
+  detailFormRef.value?.open('update', scope.row, {
+    projectNo: props.projectNo,
+    projectName: props.projectName
+  })
 }
 
 /** 处理详情保存成功 */