From c69b7fc84e32816bc21716433dac4a97dd87f63f Mon Sep 17 00:00:00 2001
From: 李旭东 <woaiguo66@sina.com>
Date: 星期五, 24 十一月 2023 13:42:52 +0800
Subject: [PATCH] 新增管片功能修改

---
 web/src/views/DuctpiecePLM/DuctpieceIndex.vue           | 1106 +++++++++++++++++++---------
 web/src/api/modules/ductpiecePLM.js                     |   39 
 web/src/views/DuctpiecePLM/DuctProduct/ProductIndex.vue | 1106 +++++++++++++++++++---------
 3 files changed, 1,513 insertions(+), 738 deletions(-)

diff --git a/web/src/api/modules/ductpiecePLM.js b/web/src/api/modules/ductpiecePLM.js
index e67479f..68f9630 100644
--- a/web/src/api/modules/ductpiecePLM.js
+++ b/web/src/api/modules/ductpiecePLM.js
@@ -26,7 +26,6 @@
       url: '/m/pipeInfo/findList',
       data: {
         proId: params.proId,
-        segmentId: params.segmentId,
         ringNum: params.ringNum,
         groupId: params.groupId,
         checkResult: params.checkResult,
@@ -56,14 +55,17 @@
   // 获取全部钢筋笼与模具信息
   getAllSteelPipeData: (params) =>
     axios.post('/m/steelProduce/ModSteelPullDown', params),
-  
-
   /**
-   * agv监控
-   */
+     * agv监控
+    */
   searchAgvLists: (params) =>
-    axios.post('/screen/pl/agv', params),
-
+  axios.post('/screen/pl/agv', params),
+  // 获取时间信息
+  getPipeTimeData: (params) =>
+    axios.post('/m/pipeInfo/updateDateInfo', params),
+  // 修改时间信息
+  updatePipeTimeData: (params) =>
+    axios.post('/m/pipeInfo/updatePipeDate', params),
   /**
    * 水养模块接口
    * */
@@ -110,6 +112,7 @@
       data: {
         waterCultivatedId: params.waterCultivatedId,
         ringNum: params.ringNum,
+        proId:params.proId,
         blockNum: params.blockNum,
         reinforcement: params.reinforcement,
         groutingHoles: params.groutingHoles,
@@ -119,6 +122,18 @@
         outCulEndTime: params.outCulEndTime
       }
     }),
+  // 根据项目查询环号
+  getProjectRingNumData: (params) =>
+    axios.get('/m/waterCultivated/ringNumList', {params}),
+  // 根据项目  环号查询管片信息
+  getProjectRingPipeData: (params) =>
+    axios.post('/m/pipeCultivated/pipeInfoList', params),
+  // 获取水养池下拉
+  getWaterCultivatedData: (params) =>
+    axios.post('/m/waterCultivated/pulldown', params),
+  // 提交入池
+  submitpipeEnterCistern: (params) =>
+		axios.post('/m/pipeCultivated/intowaterWeb', params),
 
   /*
    * 管片蒸养
@@ -207,6 +222,13 @@
   //获取所有环号
   getAllPipInfos: params =>
     axios.post('/materials/pipeOut/pipeInfoInList', params),
+
+	// 获取堆场下拉信息
+	getRepoRecordData: () =>
+		axios.post('/m/repoRecord/repoPullDown'),
+  // 管片入库
+	submitPipePutbankInfo: (params) =>
+    axios.post('/m/repoRecord/intoRepoWeb', params),
   
   /**
    * 发运管理中的GPS设备管理
@@ -288,7 +310,8 @@
         pageSize: params.pageSize
       },
       data: {
-        ringNum: params.ringNum
+        ringNum: params.ringNum,
+        proId:params.proId
       }
     }),
   // 获取管片详情
diff --git a/web/src/views/DuctpiecePLM/DuctProduct/ProductIndex.vue b/web/src/views/DuctpiecePLM/DuctProduct/ProductIndex.vue
index 3626c63..fc388bb 100644
--- a/web/src/views/DuctpiecePLM/DuctProduct/ProductIndex.vue
+++ b/web/src/views/DuctpiecePLM/DuctProduct/ProductIndex.vue
@@ -3,12 +3,18 @@
     <div class="main_header">
       <div class="header_item">
         <span class="header_label">项目名称:</span>
-        <el-select v-model="projectId" clearable placeholder="请选择项目" @change="changeHeaderProject">
+        <el-select
+          v-model="projectId"
+          clearable
+          placeholder="请选择项目"
+          @change="changeHeaderProject"
+        >
           <el-option
             v-for="item in projectData"
             :key="item.proId"
             :label="item.proName"
-            :value="item.proId">
+            :value="item.proId"
+          >
           </el-option>
         </el-select>
       </div>
@@ -23,7 +29,8 @@
             v-for="item in groupData"
             :key="item.groupId"
             :label="item.groupName"
-            :value="item.groupId">
+            :value="item.groupId"
+          >
           </el-option>
         </el-select>
       </div>
@@ -42,7 +49,8 @@
             v-for="item in reinforcementData"
             :key="item.hasSteel"
             :label="item.dictName"
-            :value="item.hasSteel">
+            :value="item.hasSteel"
+          >
           </el-option>
         </el-select>
       </div>
@@ -53,9 +61,10 @@
             v-for="item in groutingHolesData"
             :key="item.groutingHoles"
             :label="item.dictName"
-            :value="item.groutingHoles">
+            :value="item.groutingHoles"
+          >
           </el-option>
-        </el-select> 
+        </el-select>
       </div>
       <div class="header_item">
         <span class="header_label">块号:</span>
@@ -64,7 +73,8 @@
             v-for="item in blockNumData"
             :key="item.blockNum"
             :label="item.dictName"
-            :value="item.blockNum">
+            :value="item.blockNum"
+          >
           </el-option>
         </el-select>
       </div>
@@ -76,7 +86,8 @@
           range-separator="至"
           start-placeholder="开始日期"
           end-placeholder="结束日期"
-          value-format="yyyy-MM-dd">
+          value-format="yyyy-MM-dd"
+        >
         </el-date-picker>
       </div>
       <!-- <div class="header_item">
@@ -98,51 +109,119 @@
           range-separator="至"
           start-placeholder="开始日期"
           end-placeholder="结束日期"
-          value-format="yyyy-MM-dd">
+          value-format="yyyy-MM-dd"
+        >
         </el-date-picker>
       </div>
       <div class="header_item">
-        <el-button v-if="showButton('search')" icon="el-icon-search" @click="searchDuctpiecePLMList(true)">查询</el-button>
-        <el-button v-if="showButton('insert')" icon="el-icon-download" @click="propInsert()">新增管片</el-button>
-        <el-button v-if="showButton('insert')" icon="el-icon-download" @click="exportExcel()">导出Excel</el-button>
+        <el-button
+          v-if="showButton('search')"
+          icon="el-icon-search"
+          @click="searchDuctpiecePLMList(true)"
+          >查询</el-button
+        >
+        <el-button
+          v-if="showButton('insert')"
+          icon="el-icon-download"
+          @click="propInsert()"
+          >新增管片</el-button
+        >
+        <el-button
+          v-if="showButton('export')"
+          icon="el-icon-download"
+          @click="exportExcel()"
+          >导出Excel</el-button
+        >
       </div>
     </div>
     <div class="main_content">
-      <el-table
-        v-loading="loading"
-        :data="ductpieceList"
-        height="100%">
+      <el-table v-loading="loading" :data="ductpieceList" height="100%">
         <el-table-column label="序号" width="60" align="center">
           <template #default="scope">
-            <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
+            <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span>
           </template>
         </el-table-column>
         <el-table-column prop="ringNum" label="环号" align="center"></el-table-column>
         <el-table-column prop="proName" label="项目名称" align="center"></el-table-column>
         <el-table-column prop="pipeNum" label="管片编号" align="center"></el-table-column>
         <el-table-column prop="turnName" label="转向" align="center"></el-table-column>
-        <el-table-column prop="reinforcementName" label="配筋" align="center"></el-table-column>
-        <el-table-column prop="groutingHolesName" label="注浆孔" align="center"></el-table-column>
-        <el-table-column prop="blockNumName" label="块号" align="center"></el-table-column>
+        <el-table-column
+          prop="reinforcementName"
+          label="配筋"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="groutingHolesName"
+          label="注浆孔"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="blockNumName"
+          label="块号"
+          align="center"
+        ></el-table-column>
         <el-table-column prop="mouldNum" label="模具" align="center"></el-table-column>
-        <el-table-column prop="intoModTime" label="入模时间" align="center"></el-table-column>
+        <el-table-column
+          prop="intoModTime"
+          label="入模时间"
+          align="center"
+        ></el-table-column>
         <!-- <el-table-column prop="pouringTime" label="浇筑时间" align="center"></el-table-column> -->
-        <el-table-column prop="checkTime" label="质检时间" align="center"></el-table-column>
-        <el-table-column prop="groupName" label="生产班组" align="center"></el-table-column>
+        <el-table-column
+          prop="checkTime"
+          label="质检时间"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="groupName"
+          label="生产班组"
+          align="center"
+        ></el-table-column>
         <el-table-column label="质量标注" align="center">
           <template #default="{ row }">
             <div>
-               {{ row.checkResult == 0 ? '未质检' : row.checkResult == 1 ? '合格' : row.checkResult == 2 ? '不合格' : row.checkResult == 3 ? '报废' : ''}}
+              {{
+                row.checkResult == 0
+                  ? "未质检"
+                  : row.checkResult == 1
+                  ? "合格"
+                  : row.checkResult == 2
+                  ? "不合格"
+                  : row.checkResult == 3
+                  ? "报废"
+                  : ""
+              }}
             </div>
           </template>
         </el-table-column>
         <el-table-column label="操作" align="center" width="300">
           <template #default="{ row }">
-            <template v-if="showButton('update') && row.checkResult !== 1">
-              <el-button class="table_btn" size="mini" @click="propIssue(row)">存在问题</el-button>
+            <template v-if="showButton('update') && [2, 3].includes(row.checkResult)">
+              <el-button class="table_btn" size="mini" @click="propIssue(row)"
+                >存在问题</el-button
+              >
             </template>
-            <el-button class="table_btn" size="mini" v-if="showButton('update') && row.checkResult == 0" @click="propUpdate(row)">修改环号</el-button>
-            <el-button class="table_btn" size="mini" v-if="showButton('delete')" @click="propCheckHistory(row)">质量追溯</el-button>
+            <el-button
+              class="table_btn"
+              size="mini"
+              v-if="showButton('update')"
+              @click="propUpdate(row)"
+              >修改环号</el-button
+            >
+            <el-button
+              class="table_btn"
+              size="mini"
+              v-if="showButton('update')"
+              @click="propUpdateTime(row)"
+              >修改时间</el-button
+            >
+            <el-button
+              class="table_btn"
+              size="mini"
+              v-if="showButton('delete')"
+              @click="propCheckHistory(row)"
+              >质量追溯</el-button
+            >
           </template>
         </el-table-column>
       </el-table>
@@ -156,24 +235,33 @@
         :page-sizes="[10, 20, 50, 100]"
         :page-size="pageSize"
         layout="total, sizes, prev, pager, next, jumper"
-        :total="total">
+        :total="total"
+      >
       </el-pagination>
     </div>
     <el-dialog
       class="prop_dialog"
       title="存在问题"
       :visible.sync="asyncDuctPiece"
-      width="35%">
-      <el-form ref="form" :model="formDuctPiece" :rules="rulesDuctPiece" label-width="auto" class="rule_form">
+      width="35%"
+    >
+      <el-form
+        ref="form"
+        :model="formDuctPiece"
+        :rules="rulesDuctPiece"
+        label-width="auto"
+        class="rule_form"
+      >
         <el-form-item label="质检结果:">
-          <span class="issue_status">{{checkResultStr}}</span>
+          <span class="issue_status">{{ checkResultStr }}</span>
         </el-form-item>
         <el-form-item label="存在问题:">
-          <el-input 
-            v-model="formDuctPiece.existProblem" 
+          <el-input
+            v-model="formDuctPiece.existProblem"
             type="textarea"
             disabled
-            placeholder="请输入存在问题"></el-input>
+            placeholder="请输入存在问题"
+          ></el-input>
         </el-form-item>
         <el-form-item label="问题图片:">
           <div class="problem_content">
@@ -181,25 +269,28 @@
               v-for="item in fileList"
               :key="item.id"
               class="problem_image"
-              :src="item.url">
+              :src="item.url"
+            >
             </el-image>
           </div>
         </el-form-item>
         <el-form-item label="问题处理结果:">
-          <el-input 
-            v-model="formDuctPiece.exeProResult" 
+          <el-input
+            v-model="formDuctPiece.exeProResult"
             type="textarea"
-            clearable 
-            placeholder="请输入问题处理结果"></el-input>
+            clearable
+            placeholder="请输入问题处理结果"
+          ></el-input>
         </el-form-item>
         <el-form-item label="备注:">
-          <el-input 
-            v-model="formDuctPiece.exeProNote" 
+          <el-input
+            v-model="formDuctPiece.exeProNote"
             type="textarea"
-            clearable 
+            clearable
             placeholder="请输入备注"
             maxlength="200"
-            show-word-limit></el-input>
+            show-word-limit
+          ></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer">
@@ -212,47 +303,49 @@
       class="prop_dialog"
       title="质量追溯"
       :visible.sync="asyncRetrospect"
-      width="70%">
+      width="70%"
+    >
       <div class="retrospect_content">
-        <div class="retrospect_content_title">
-          钢筋笼信息
-        </div>
+        <div class="retrospect_content_title">钢筋笼信息</div>
         <div class="retrospect_content_table">
-          <div 
-            class="table_item" 
-            :style="{width: `calc(100% / ${asyncCageInfo.length})`}"
+          <div
+            class="table_item"
+            :style="{ width: `calc(100% / ${asyncCageInfo.length})` }"
             v-for="item in asyncCageInfo"
-            :key="item.id">
-            <div class="table_item_chunk table_th">{{item.label}}</div>
-            <div class="table_item_chunk table_td">{{ 
-              item.value === 'steelCheckResult' ? showCheckResult(retrospectInfo[item.value]) : retrospectInfo[item.value]}}
+            :key="item.id"
+          >
+            <div class="table_item_chunk table_th">{{ item.label }}</div>
+            <div class="table_item_chunk table_td">
+              {{
+                item.value === "steelCheckResult"
+                  ? showCheckResult(retrospectInfo[item.value])
+                  : retrospectInfo[item.value]
+              }}
             </div>
           </div>
         </div>
-        <div class="retrospect_content_title">
-          模具信息
-        </div>
+        <div class="retrospect_content_title">模具信息</div>
         <div class="retrospect_content_table">
-          <div 
-            class="table_item" 
-            :style="{width: `calc(100% / ${asyncMouldInfo.length})`}"
+          <div
+            class="table_item"
+            :style="{ width: `calc(100% / ${asyncMouldInfo.length})` }"
             v-for="item in asyncMouldInfo"
-            :key="item.id">
-            <div class="table_item_chunk table_th">{{item.label}}</div>
-            <div class="table_item_chunk table_td">{{retrospectInfo[item.value]}}</div>
+            :key="item.id"
+          >
+            <div class="table_item_chunk table_th">{{ item.label }}</div>
+            <div class="table_item_chunk table_td">{{ retrospectInfo[item.value] }}</div>
           </div>
         </div>
-        <div class="retrospect_content_title">
-          管片信息
-        </div>
+        <div class="retrospect_content_title">管片信息</div>
         <div class="retrospect_content_table">
-          <div 
-            class="table_item" 
-            :style="{width: `calc(100% / ${asyncDuctpieceInfo.length})`}"
+          <div
+            class="table_item"
+            :style="{ width: `calc(100% / ${asyncDuctpieceInfo.length})` }"
             v-for="item in asyncDuctpieceInfo"
-            :key="item.id">
-            <div class="table_item_chunk table_th">{{item.label}}</div>
-            <div class="table_item_chunk table_td">{{retrospectInfo[item.value]}}</div>
+            :key="item.id"
+          >
+            <div class="table_item_chunk table_th">{{ item.label }}</div>
+            <div class="table_item_chunk table_td">{{ retrospectInfo[item.value] }}</div>
           </div>
         </div>
       </div>
@@ -261,329 +354,612 @@
       class="prop_dialog"
       :title="asyncTitle ? '新增管片' : '修改环号'"
       :visible.sync="asyncInsert"
-      width="35%">
-      <el-form ref="formInsert" :model="formInsert" :rules="rulesInsert" label-width="auto" class="rule_form">
-        <el-form-item label="项目名称:" prop="proId" v-if="asyncTtile">
-          <el-select v-model="formInsert.proId" clearable placeholder="请选择项目信息" @change="getAllSteelPipeData">
+      width="35%"
+    >
+      <el-form
+        ref="formInsert"
+        :model="formInsert"
+        :rules="rulesInsert"
+        label-width="auto"
+        class="rule_form"
+      >
+        <el-form-item label="项目名称:" prop="proId" v-if="asyncTitle">
+          <el-select
+            v-model="formInsert.proId"
+            clearable
+            placeholder="请选择项目信息"
+            @change="getAllSteelPipeData"
+          >
             <el-option
               v-for="item in projectData"
               :key="item.proId"
               :label="item.proName"
-              :value="item.proId">
+              :value="item.proId"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="配筋:" prop="reinforcementId" v-if="asyncTitle">
+          <el-select
+            v-model="formInsert.reinforcementId"
+            clearable
+            placeholder="请选择配筋"
+          >
+            <el-option
+              v-for="item in steelData"
+              :key="item.hasSteel"
+              :label="item.dictName"
+              :value="item.hasSteel"
+            >
             </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="环号:" prop="ringNum">
-          <el-input v-model="formInsert.ringNum" clearable placeholder="请输入环号"></el-input>
+          <el-input
+            v-model="formInsert.ringNum"
+            clearable
+            placeholder="请输入环号"
+          ></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer">
         <el-button @click="asyncInsert = false">取 消</el-button>
-        <el-button class="submit_btn" @click="asyncTitle ? submitInsertPipe() : submitUpdatePipe()">提 交</el-button>
+        <el-button
+          class="submit_btn"
+          @click="asyncTitle ? submitInsertPipe() : submitUpdatePipe()"
+          >提 交</el-button
+        >
+      </div>
+    </el-dialog>
+
+    <el-dialog
+      class="prop_dialog"
+      title="修改时间"
+      :visible.sync="asyncTime"
+      width="35%">
+      <el-form
+        ref="formTime"
+        :model="formTime"
+        :rules="rulesTime"
+        label-width="auto"
+        class="rule_form">
+        <el-form-item label="入模时间:" prop="inModTime">
+          <el-date-picker
+            v-model="formTime.inModTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择入模时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="浇筑时间:" prop="pouringTime">
+          <el-date-picker
+            v-model="formTime.pouringTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择浇筑时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="入窑时间:" prop="placingInTime">
+          <el-date-picker
+            v-model="formTime.placingInTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择入窑时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="出窑时间:" prop="placingOutTime">
+          <el-date-picker
+            v-model="formTime.placingOutTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择出窑时间"
+          >
+          </el-date-picker>
+        </el-form-item>    
+        <el-form-item label="出模时间:" prop="outModTime">
+          <el-date-picker
+            v-model="formTime.outModTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择入窑时间"
+          >
+          </el-date-picker>
+        </el-form-item>    
+        <el-form-item label="质检时间:" prop="checkTime">
+          <el-date-picker
+            v-model="formTime.checkTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择质检时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="入水养时间:" prop="inWaterTime" v-if="formTime.inWaterTime">
+          <el-date-picker
+            v-model="formTime.inWaterTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择入水养时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="出水养时间:" prop="outWaterTime" v-if="formTime.outWaterTime">
+          <el-date-picker
+            v-model="formTime.outWaterTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择出水养时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="入库时间:" prop="inRepoTime" v-if="formTime.inRepoTime">
+          <el-date-picker
+            v-model="formTime.inRepoTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择入库时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <!-- <el-form-item label="出库时间:" prop="intoModTime">
+          <el-date-picker
+            v-model="formTime.intoModTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择出库时间"
+          >
+          </el-date-picker>
+        </el-form-item> -->
+      </el-form>
+      <div slot="footer">
+        <el-button @click="asyncTime = false">取 消</el-button>
+        <el-button
+          class="submit_btn"
+          @click="submitUpdateTime()"
+          >提 交
+        </el-button>
       </div>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import { cageInfo, mouldInfo, ductpiedceInfo } from '../file/retrospect';
+import { cageInfo, mouldInfo, ductpiedceInfo } from "../file/retrospect";
+import { downLoadFile, throttle } from "../../../plugins/public";
 import { buttonPinia } from '../../../pinia';
-import { downLoadFile, throttle } from '../../../plugins/public';
-  export default {
-    data() {
-      return {
-        projectId: '',
-        projectData: [],
-        ringNum: '', // 环号
-        groupId: '', // 班组
-        groupData: [], // 班组信息
-        checkResult: '', // 质量标注
-        reinforcement: '', // 配筋
-        reinforcementData: [], // 配筋信息
-        groutingHoles: '', // 注浆孔
-        groutingHolesData: [], // 注浆孔信息
-        blockNum: '', // 块号
-        blockNumData: [], // 块号信息
-        inModTime: '', // 入模时间
-        pouringTime: '', // 浇筑时间
-        checkTime: '', // 质检时间
-        pageNum: 1,
-        pageSize: 10,
-        total: 0,
-        loading: false,
-        ductpieceList: [],
-        asyncDuctPiece: false, // 存在问题弹窗
-        formDuctPiece: {}, // 表单信息
-        rulesDuctPiece: {}, // 表单校验规则
-        issueType: '',
-        asyncRetrospect: false, // 质量追溯弹窗
-        asyncCageInfo: cageInfo, // 钢筋笼信息
-        asyncMouldInfo: mouldInfo, // 模具信息
-        asyncDuctpieceInfo: ductpiedceInfo, // 管片信息
-        retrospectInfo: {},// 质量追溯信息
-        pipeId: '',
-        checkResultStr: '',
-        asyncTitle: true,
-        asyncInsert: false,
-        formInsert: {},
-        rulesInsert: {
-          proId: [{
+export default {
+  data() {
+    // const validatePass = (rule, value, callback) => {
+    //   if(value === '') {
+    //     callback(new Error('请再次输入密码'));
+    //   } else if(value < ) {
+
+    //   } else {
+    //     callback();
+    //   }
+    // }
+    return {
+      projectId: "",
+      projectData: [],
+      ringNum: "", // 环号
+      groupId: "", // 班组
+      groupData: [], // 班组信息
+      checkResult: "", // 质量标注
+      reinforcement: "", // 配筋
+      reinforcementData: [], // 配筋信息
+      groutingHoles: "", // 注浆孔
+      groutingHolesData: [], // 注浆孔信息
+      blockNum: "", // 块号
+      blockNumData: [], // 块号信息
+      inModTime: "", // 入模时间
+      pouringTime: "", // 浇筑时间
+      checkTime: "", // 质检时间
+      pageNum: 1,
+      pageSize: 10,
+      total: 0,
+      loading: false,
+      ductpieceList: [],
+      asyncDuctPiece: false, // 存在问题弹窗
+      formDuctPiece: {}, // 表单信息
+      rulesDuctPiece: {}, // 表单校验规则
+      issueType: "",
+      asyncRetrospect: false, // 质量追溯弹窗
+      asyncCageInfo: cageInfo, // 钢筋笼信息
+      asyncMouldInfo: mouldInfo, // 模具信息
+      asyncDuctpieceInfo: ductpiedceInfo, // 管片信息
+      retrospectInfo: {}, // 质量追溯信息
+      fileList: [],
+      pipeId: "",
+      checkResultStr: "",
+      asyncTitle: true,
+      asyncInsert: false,
+      formInsert: {},
+      rulesInsert: {
+        proId: [
+          {
             required: true,
-            message: '请选择项目名称',
-            trigger: 'blur'
-          }],
-          ringNum: [{
+            message: "请选择项目名称",
+            trigger: ["blur", "change"],
+          },
+        ],
+        reinforcementId: [
+          {
             required: true,
-            message: '请输入环号',
-            trigger: 'blur'
-          }],
-        },
-        proData: [],
-        steelData: [],
-        mouldData: [],
+            message: "请选择配筋",
+            trigger: ["blur", "change"],
+          },
+        ],
+        ringNum: [
+          {
+            required: true,
+            message: "请输入环号",
+            trigger: "blur",
+          },
+        ]
+      },
+      proData: [],
+      steelData: [],
+      mouldData: [],
+      changeTime: false,
+      asyncTime: false,
+      formTime: {},
+      rulesTime: {
+        inModTime: [{
+          required: true,
+          message: "请选择入模时间",
+          trigger: ["blur", "change"],                                  
+        }],
+        outModTime: [{
+          required: true,
+          message: "请选择出模时间",
+          trigger: ["blur", "change"],
+        }],
+        pouringTime: [{
+          required: true,
+          message: "请选择浇筑时间",
+          trigger: ["blur", "change"],
+        }],
+        placingInTime: [{
+          required: true,
+          message: "请选择入窑时间",
+          trigger: ["blur", "change"],
+        }],
+        placingOutTime: [{
+          required: true,
+          message: "请选择出窑时间",
+          trigger: ["blur", "change"],
+        }],
+        checkTime: [{
+          required: true,
+          message: "请选择质检时间",
+          trigger: ["blur", "change"],
+        }],
+        inWaterTime: [{
+          required: true,
+          message: "请选择入池时间",
+          trigger: ["blur", "change"],
+        }],
+        outWaterTime: [{
+          required: true,
+          message: "请选择出池时间",
+          trigger: ["blur", "change"],
+        }],
+        inRepoTime: [{
+          required: true,
+          message: "请选择入库时间",
+          trigger: ["blur", "change"],
+        }]
+      }
+    };
+  },
+  mounted() {
+    this.getAllProjects();
+    this.getAllGroupData();
+    this.searchDuctpiecePLMList(true);
+  },
+  methods: {
+    // 根据项目获取钢筋笼 模具信息
+    async getAllSteelPipeData(proId) {
+      if (proId) {
+        this.steelData = [];
+        const { data } = await this.$api.Basics.getProjectSystemInfoData({
+          proId: proId,
+        });
+        this.steelData = data.proHas;
+      } else {
+        this.$set(this.formInsert, "reinforcementId", "");
+        this.steelData = [];
       }
     },
-    mounted() {
-      this.getAllProjects();
-      this.getAllGroupData();
-      this.searchDuctpiecePLMList(true);
+    // 获取全部班组
+    async getAllGroupData() {
+      const { data } = await this.$api.DuctpiecePLM.getAllGroupData();
+      this.groupData = data;
     },
-    methods: {
-      // 根据项目获取钢筋笼 模具信息
-      async getAllSteelPipeData(proId) {
-        this.steelData = [];
-        this.mouldData = [];
-        const { data } = await this.$api.DuctpiecePLM.getAllSteelPipeData({
-          proId: proId
-        });
-        this.steelData = data.steel;
-        this.mouldData = data.mod;
-      },
-      // 获取全部班组
-      async getAllGroupData() {
-        const { data } = await this.$api.DuctpiecePLM.getAllGroupData();
-        this.groupData = data;
-      },
-      // 获取全部项目
-      async getAllProjects() {
-        const { data } = await this.$api.Engineer.getAllProjects();
-        this.projectData = data;
-      },
-      // 查询管片信息
-      searchDuctpiecePLMList(bol) {
-        if(bol) {
-          this.pageNum = 1;
-        }
-        this.loading = true;
-        this.ductpieceList = [];
-        this.$api.DuctpiecePLM.searchDuctpiecePLMList({
-          pageNum: this.pageNum,
-          pageSize: this.pageSize,
-          proId: this.projectId,
-          ringNum: this.ringNum,
-          groupId: this.groupId,
-          checkResult: this.checkResult,
-          reinforcement: this.reinforcement,
-          groutingHoles: this.groutingHoles,
-          blockNum: this.blockNum,
-          inModStartTime: this.inModTime ? this.inModTime[0] + ' 00:00:00' : '',
-          inModEndTime: this.inModTime ? this.inModTime[1] + ' 23:59:59' : '',
-          pouringStartTime: this.pouringTime ? this.pouringTime[0] + ' 00:00:00' : '',
-          pouringEndTime: this.pouringTime ? this.pouringTime[1] + ' 23:59:59' : '',
-          checkStartTime: this.checkTime ? this.checkTime[0] + ' 00:00:00' : '',
-          checkEndTime: this.checkTime ? this.checkTime[1] + ' 23:59:59' : ''
-        }).then((res) => {
-          if(res.success) {
+    // 获取全部项目
+    async getAllProjects() {
+      const { data } = await this.$api.Engineer.getAllProjects();
+      this.projectData = data;
+    },
+    // 查询管片信息
+    searchDuctpiecePLMList(bol) {
+      if (bol) {
+        this.pageNum = 1;
+      }
+      this.loading = true;
+      this.ductpieceList = [];
+      this.$api.DuctpiecePLM.searchDuctpiecePLMList({
+        pageNum: this.pageNum,
+        pageSize: this.pageSize,
+        proId: this.projectId,
+        ringNum: this.ringNum,
+        groupId: this.groupId,
+        checkResult: this.checkResult,
+        reinforcement: this.reinforcement,
+        groutingHoles: this.groutingHoles,
+        blockNum: this.blockNum,
+        inModStartTime: this.inModTime ? this.inModTime[0] + " 00:00:00" : "",
+        inModEndTime: this.inModTime ? this.inModTime[1] + " 23:59:59" : "",
+        pouringStartTime: this.pouringTime ? this.pouringTime[0] + " 00:00:00" : "",
+        pouringEndTime: this.pouringTime ? this.pouringTime[1] + " 23:59:59" : "",
+        checkStartTime: this.checkTime ? this.checkTime[0] + " 00:00:00" : "",
+        checkEndTime: this.checkTime ? this.checkTime[1] + " 23:59:59" : "",
+      })
+        .then((res) => {
+          if (res.success) {
             this.total = res.data.total;
             this.ductpieceList = res.data.list;
           }
           this.loading = false;
-        }).catch(() => {
+        })
+        .catch(() => {
           this.loading = false;
-        })
-      },
-      // 打开新增管片信息
-      propInsert() {
-        this.asyncTitle = true;
-        this.asyncInsert = true;
-        this.getAllProjects();
-      },
-      // 打开修改环号信息
-      propUpdate(row) {
-        this.asyncTitle = false;
-        this.asyncInsert = true;
-        this.$set(this.formInsert, 'pipeNum', row.pipeNum);
-        this.$set(this.formInsert, 'ringNum', row.ringNum);
-      },
-      // 导出Excel
-      exportExcel() {
-        this.$api.System.GETEXPORTTOKENDATA({
-          ringNum: this.ringNum,
-          groupId: this.groupId,
-          checkResult: this.checkResult,
-          reinforcement: this.reinforcement,
-          groutingHoles: this.groutingHoles,
-          blockNum: this.blockNum,
-          inModStartTime: this.inModTime[0],
-          inModEndTime: this.inModTime[1],
-          pouringStartTime: this.pouringTime[0],
-          pouringEndTime: this.pouringTime[1],
-          checkStartTime: this.checkTime[0],
-          checkEndTime: this.checkTime[1]
-        }).then((res) => {
-          if(res.success) {
-            downLoadFile(res.data, '/m/pipeInfo/export');
-          }
-        })
-      },
-      // 打开存在问题
-      propIssue(row) {
-        this.pipeId = row.pipeId
-        this.checkResultStr = row.checkResultStr;
-        this.issueType = row.type;
-        this.asyncDuctPiece = true;
-        this.$api.DuctpiecePLM.getProblemInfo({
-          pipeId: row.pipeId
-        }).then((res) => {
-          if(res.success) {
-            this.$set(this.formDuctPiece, 'pipeCheckId', res.data.pipeCheckId);
-            this.$set(this.formDuctPiece, 'existProblem', res.data.existProblem);
-            this.$set(this.formDuctPiece, 'exeProResult', res.data.exeProResult);
-            this.$set(this.formDuctPiece, 'exeProNote', res.data.exeProNote);
-            this.fileList = res.data.files.map((item, index) => {
-              return {
-                id: index + 1,
-                url: `https://szpipe.thhy-tj.com/${item}`
-              }
-            })
-          }
-        })
-      },
-      // 打开质量追溯
-      propCheckHistory(row) {
-        this.asyncRetrospect = true;
-        this.retrospectInfo = {};
-        this.$api.DuctpiecePLM.getCheckHistoryInfo({
-          pipeId: row.pipeId
-        }).then((res) => {
-          if(res.success) {
-            this.retrospectInfo = res.data;
-          }
-        })
-      },
-      // 提交存在问题
-      submitInsertForm: throttle(function() {
-        const params = Object.assign({}, this.formDuctPiece);
-        params.checkResultStr = this.checkResultStr;
-        params.pipeId = this.pipeId;
-        this.$api.DuctpiecePLM.insertIssueInfo(params).then((res) => {
-          if(res.success) {
-            this.asyncDuctPiece = false;
-            this.searchDuctpiecePLMList(true);
-            this.$message.success('添加成功!');
-          } else {
-            this.$message.warning(res.statusMsg);
-          }
-        })
-      }, 3000),
-      // 提交新增管片信息
-      submitInsertPipe: throttle(function() {
-        this.$refs.formInsert.validate((valid) => {
-          if(valid) {
-            const params = Object.assign({}, this.formInsert);
-            this.$api.DuctpiecePLM.insertPipeData(params).then((res) => {
-              if(res.statusMsg === 'ok') {
-                this.asyncInsert = false;
-                this.searchDuctpiecePLMList(true);
-                this.$message.success('新增成功!');
-              } else {
-                this.$message.warning(res.statusMsg);
-              }
-            })
-          }
-        })
-      }, 3000),
-      // 提交修改环号信息
-      submitUpdatePipe: throttle(function() {
-        this.$refs.formInsert.validate((valid) => {
-          if(valid) {
-            const params = Object.assign({}, this.formInsert);
-            this.$api.DuctpiecePLM.updataRingNumData(params).then((res) => {
-              if(res.statusMsg === 'ok') {
-                this.asyncInsert = false;
-                this.searchDuctpiecePLMList(true);
-                this.$message.success('修改成功!');
-              } else {
-                this.$message.warning(res.statusMsg);
-              }
-            })
-          }
-        })
-      }, 3000),
-      // 
-      showCheckResult(value) {
-        return !value ? '' : value == 1 ? '合格' : '存在问题';
-      },
-      // 根据项目获取尺寸 配筋 块号信息
-      changeHeaderProject(data) {
-          this.blockNum = '';
-          this.reinforcement = '';
-          this.groutingHoles = '';
-          this.groutingHolesData = [];
-          this.blockNumData = [];
-          this.reinforcementData = [];
-        if(data) {
-          this.$api.Basics.getProjectSystemInfoData({
-            proId: data
-          }).then((res) => {
-            this.groutingHolesData = res.data.proGroutings;
-            this.blockNumData = res.data.proBloks;
-            this.reinforcementData = res.data.proHas;
-          })
-        }
-      },
-      // 切换页数
-      changePageNum(page) {
-        this.pageNum = page;
-        this.searchDuctpiecePLMList();
-      },
-      // 切换每页条数
-      changePageSize(size) {
-        this.pageSize = size;
-        this.searchDuctpiecePLMList();
-      },
-      // 判断按钮权限信息
-      showButton(str) {
-        const pinia = buttonPinia();
-        return pinia.$state.buttonInfo.includes(str);
-      },
+        });
     },
-    watch: {
-      asyncDuctpieceInfo(bol) {
-        if(!bol) {
-          this.formDuctPiece = {};
-          this.pipeId = '';
-          this.checkResultStr = '';
-          this.fileList = [];
+    // 打开新增管片信息
+    propInsert() {
+      this.asyncTitle = true;
+      this.asyncInsert = true;
+      this.getAllProjects();
+    },
+    // 打开修改环号信息
+    propUpdate(row) {
+      this.asyncTitle = false;
+      this.asyncInsert = true;
+      this.$set(this.formInsert, "pipeNum", row.pipeNum);
+      this.$set(this.formInsert, "ringNum", row.ringNum);
+    },
+    // 打开修改时间
+    propUpdateTime(row) {
+      this.asyncTime = true;
+      this.$set(this.formTime, "pipeNum", row.pipeNum);
+      this.$set(this.formTime, "ringNum", row.ringNum);
+      this.$api.DuctpiecePLM.getPipeTimeData({
+        pipeNum: row.pipeNum
+      }).then(res => {
+        if(res.success) {
+          this.$set(this.formTime, 'inModTime', res.data.inModTime);
+          this.$set(this.formTime, 'outModTime', res.data.outModTime);
+          this.$set(this.formTime, 'pouringTime', res.data.pouringTime);
+          this.$set(this.formTime, 'placingInTime', res.data.placingInTime);
+          this.$set(this.formTime, 'placingOutTime', res.data.placingOutTime);
+          this.$set(this.formTime, 'checkTime', res.data.checkTime);
+          if(res.data.inWaterFlag) {
+            this.$set(this.formTime, 'inWaterTime', res.data.inWaterTime);
+          }
+          if(res.data.OutWaterFlag) {
+            this.$set(this.formTime, 'outWaterTime', res.data.outWaterTime);
+          }
+          if(res.data.inRepoFlag) {
+            this.$set(this.formTime, 'inRepoTime', res.data.inRepoTime);
+          }
+          // this.$set(this.formInsert, '', res.data.);
+        } else {
+         this.$message.warning(res.statusMsg);
         }
-      },
-      asyncInsert(bol) {
-        if(!bol) {
-          this.steelData = [];
-          this.mouldData = [];
-          this.formInsert = {};
-          this.$refs.formInsert.resetFields();
+      })
+    },
+    // 导出Excel
+    exportExcel() {
+      this.$api.System.GETEXPORTTOKENDATA({
+        ringNum: this.ringNum,
+        groupId: this.groupId,
+        checkResult: this.checkResult,
+        reinforcement: this.reinforcement,
+        groutingHoles: this.groutingHoles,
+        blockNum: this.blockNum,
+        inModStartTime: this.inModTime[0],
+        inModEndTime: this.inModTime[1],
+        pouringStartTime: this.pouringTime[0],
+        pouringEndTime: this.pouringTime[1],
+        checkStartTime: this.checkTime[0],
+        checkEndTime: this.checkTime[1],
+      }).then((res) => {
+        if (res.success) {
+          downLoadFile(res.data, "/m/pipeInfo/export");
         }
+      });
+    },
+    // 打开存在问题
+    propIssue(row) {
+      this.pipeId = row.pipeId;
+      this.checkResultStr = row.checkResultStr;
+      this.issueType = row.type;
+      this.asyncDuctPiece = true;
+      this.$api.DuctpiecePLM.getProblemInfo({
+        pipeId: row.pipeId,
+      }).then((res) => {
+        if (res.success) {
+          this.$set(this.formDuctPiece, "pipeCheckId", res.data.pipeCheckId);
+          this.$set(this.formDuctPiece, "existProblem", res.data.existProblem);
+          this.$set(this.formDuctPiece, "exeProResult", res.data.exeProResult);
+          this.$set(this.formDuctPiece, "exeProNote", res.data.exeProNote);
+          this.fileList = res.data.files.map((item, index) => {
+            return {
+              id: index + 1,
+              url: `https://pipe.thhy-tj.com/${item}`,
+            };
+          });
+        }
+      });
+    },
+    // 打开质量追溯
+    propCheckHistory(row) {
+      this.asyncRetrospect = true;
+      this.retrospectInfo = {};
+      this.$api.DuctpiecePLM.getCheckHistoryInfo({
+        pipeId: row.pipeId,
+      }).then((res) => {
+        if (res.success) {
+          this.retrospectInfo = res.data;
+        }
+      });
+    },
+    // 提交存在问题
+    submitInsertForm: throttle(function () {
+      const params = Object.assign({}, this.formDuctPiece);
+      params.checkResultStr = this.checkResultStr;
+      params.pipeId = this.pipeId;
+      this.$api.DuctpiecePLM.insertIssueInfo(params).then((res) => {
+        if (res.success) {
+          this.asyncDuctPiece = false;
+          this.searchDuctpiecePLMList(true);
+          this.$message.success("添加成功!");
+        } else {
+          this.$message.warning(res.statusMsg);
+        }
+      });
+    }, 3000),
+    // 提交新增管片信息
+    submitInsertPipe: throttle(function () {
+      this.$refs.formInsert.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formInsert);
+          this.$api.DuctpiecePLM.insertPipeData(params).then((res) => {
+            if (res.statusMsg === "ok") {
+              this.asyncInsert = false;
+              this.searchDuctpiecePLMList(true);
+              this.$message.success("新增成功!");
+            } else {
+              this.$message.warning(res.statusMsg);
+            }
+          });
+        }
+      });
+    }, 3000),
+    // 提交修改环号信息
+    submitUpdatePipe: throttle(function () {
+      this.$refs.formInsert.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formInsert);
+          this.$api.DuctpiecePLM.updataRingNumData(params).then((res) => {
+            if (res.statusMsg === "ok") {
+              this.asyncInsert = false;
+              this.searchDuctpiecePLMList(true);
+              this.$message.success("修改成功!");
+            } else {
+              this.$message.warning(res.statusMsg);
+            }
+          });
+        }
+      });
+    }, 3000),
+    // 提交修改时间信息
+    submitUpdateTime: throttle(function() {
+      this.$refs.formTime.validate((valid) => {
+        if(valid) {
+          const params = Object.assign({}, this.formTime);
+          this.$api.DuctpiecePLM.updatePipeTimeData(params).then((res) => {
+            if (res.statusMsg === "ok") {
+              this.asyncTime = false;
+              this.searchDuctpiecePLMList(true);
+              this.$message.success("修改成功!");
+            } else {
+              this.$message.warning(res.statusMsg);
+            }
+          });
+        }
+      })
+    }, 3000),
+    //
+    showCheckResult(value) {
+      return !value ? "" : value == 1 ? "合格" : "存在问题";
+    },
+    // 根据项目获取尺寸 配筋 块号信息
+    changeHeaderProject(data) {
+      this.blockNum = "";
+      this.reinforcement = "";
+      this.groutingHoles = "";
+      this.groutingHolesData = [];
+      this.blockNumData = [];
+      this.reinforcementData = [];
+      if (data) {
+        this.$api.Basics.getProjectSystemInfoData({
+          proId: data,
+        }).then((res) => {
+          this.groutingHolesData = res.data.proGroutings;
+          this.blockNumData = res.data.proBloks;
+          this.reinforcementData = res.data.proHas;
+        });
+      }
+    },
+    // 转换毫秒
+    transitionMsec(time) {
+      let msec = 0;
+      const date = Date.parse(new Date(time));
+      console.log(date,'==-=-=-')
+      return msec;
+    },
+    // 切换页数
+    changePageNum(page) {
+      this.pageNum = page;
+      this.searchDuctpiecePLMList();
+    },
+    // 切换每页条数
+    changePageSize(size) {
+      this.pageSize = size;
+      this.searchDuctpiecePLMList();
+    },
+    // 判断按钮权限信息
+    showButton(str) {
+      const pinia = buttonPinia();
+      return pinia.$state.buttonInfo.includes(str);
+    },
+  },
+  watch: {
+    asyncDuctpieceInfo(bol) {
+      if (!bol) {
+        this.formDuctPiece = {};
+        this.pipeId = "";
+        this.checkResultStr = "";
+        this.fileList = [];
+      }
+    },
+    asyncInsert(bol) {
+      if (!bol) {
+        this.steelData = [];
+        this.formInsert = {};
+        this.$refs.formInsert.resetFields();
+      }
+    },
+    asyncTime(bol) {
+      if(!bol) {
+        this.formTime = {};
+        this.$refs.formTime.resetFields();
       }
     }
-  }
+  },
+};
 </script>
 
 <style lang="scss" scoped>
-@import '../../../style/layout-main.scss';
+@import "../../../style/layout-main.scss";
 
 .issue_status {
-  color: #F42829;
+  color: #f42829;
 }
 
 .retrospect_content {
@@ -594,7 +970,7 @@
     padding: 0 15px 15px;
     font-size: 16px;
     font-weight: 600;
-    color: #FFF;
+    color: #fff;
     border-bottom: 1px solid #0d5274;
 
     &::before {
@@ -605,7 +981,7 @@
       transform: translateY(-85%);
       width: 3px;
       height: 50%;
-      background: #18F6F8;
+      background: #18f6f8;
     }
   }
 
@@ -614,22 +990,22 @@
     margin: 10px 10px 10px 0;
 
     .table_item {
-      border: 1px solid #1CB7E0;
+      border: 1px solid #1cb7e0;
       border-right: none;
 
       &:last-child {
-        border-right: 1px solid #1CB7E0;
+        border-right: 1px solid #1cb7e0;
       }
 
       .table_item_chunk {
         padding: 10px;
-        color: #18F6F8;
+        color: #18f6f8;
         text-align: center;
       }
 
       .table_th {
-        border-bottom: 1px solid #1CB7E0;
-        background: #082F57;
+        border-bottom: 1px solid #1cb7e0;
+        background: #082f57;
       }
     }
   }
@@ -649,4 +1025,4 @@
 ::v-deep .el-date-editor .el-range-separator {
   color: #fff !important;
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/web/src/views/DuctpiecePLM/DuctpieceIndex.vue b/web/src/views/DuctpiecePLM/DuctpieceIndex.vue
index 643f061..ca0b0ed 100644
--- a/web/src/views/DuctpiecePLM/DuctpieceIndex.vue
+++ b/web/src/views/DuctpiecePLM/DuctpieceIndex.vue
@@ -3,12 +3,18 @@
     <div class="main_header">
       <div class="header_item">
         <span class="header_label">项目名称:</span>
-        <el-select v-model="projectId" clearable placeholder="请选择项目" @change="changeHeaderProject">
+        <el-select
+          v-model="projectId"
+          clearable
+          placeholder="请选择项目"
+          @change="changeHeaderProject"
+        >
           <el-option
             v-for="item in projectData"
             :key="item.proId"
             :label="item.proName"
-            :value="item.proId">
+            :value="item.proId"
+          >
           </el-option>
         </el-select>
       </div>
@@ -23,7 +29,8 @@
             v-for="item in groupData"
             :key="item.groupId"
             :label="item.groupName"
-            :value="item.groupId">
+            :value="item.groupId"
+          >
           </el-option>
         </el-select>
       </div>
@@ -42,7 +49,8 @@
             v-for="item in reinforcementData"
             :key="item.hasSteel"
             :label="item.dictName"
-            :value="item.hasSteel">
+            :value="item.hasSteel"
+          >
           </el-option>
         </el-select>
       </div>
@@ -53,9 +61,10 @@
             v-for="item in groutingHolesData"
             :key="item.groutingHoles"
             :label="item.dictName"
-            :value="item.groutingHoles">
+            :value="item.groutingHoles"
+          >
           </el-option>
-        </el-select> 
+        </el-select>
       </div>
       <div class="header_item">
         <span class="header_label">块号:</span>
@@ -64,7 +73,8 @@
             v-for="item in blockNumData"
             :key="item.blockNum"
             :label="item.dictName"
-            :value="item.blockNum">
+            :value="item.blockNum"
+          >
           </el-option>
         </el-select>
       </div>
@@ -76,7 +86,8 @@
           range-separator="至"
           start-placeholder="开始日期"
           end-placeholder="结束日期"
-          value-format="yyyy-MM-dd">
+          value-format="yyyy-MM-dd"
+        >
         </el-date-picker>
       </div>
       <!-- <div class="header_item">
@@ -98,51 +109,119 @@
           range-separator="至"
           start-placeholder="开始日期"
           end-placeholder="结束日期"
-          value-format="yyyy-MM-dd">
+          value-format="yyyy-MM-dd"
+        >
         </el-date-picker>
       </div>
       <div class="header_item">
-        <el-button v-if="showButton('search')" icon="el-icon-search" @click="searchDuctpiecePLMList(true)">查询</el-button>
-        <el-button v-if="showButton('insert')" icon="el-icon-download" @click="propInsert()">新增管片</el-button>
-        <el-button v-if="showButton('insert')" icon="el-icon-download" @click="exportExcel()">导出Excel</el-button>
+        <el-button
+          v-if="showButton('search')"
+          icon="el-icon-search"
+          @click="searchDuctpiecePLMList(true)"
+          >查询</el-button
+        >
+        <el-button
+          v-if="showButton('insert')"
+          icon="el-icon-download"
+          @click="propInsert()"
+          >新增管片</el-button
+        >
+        <el-button
+          v-if="showButton('export')"
+          icon="el-icon-download"
+          @click="exportExcel()"
+          >导出Excel</el-button
+        >
       </div>
     </div>
     <div class="main_content">
-      <el-table
-        v-loading="loading"
-        :data="ductpieceList"
-        height="100%">
+      <el-table v-loading="loading" :data="ductpieceList" height="100%">
         <el-table-column label="序号" width="60" align="center">
           <template #default="scope">
-            <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
+            <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span>
           </template>
         </el-table-column>
         <el-table-column prop="ringNum" label="环号" align="center"></el-table-column>
         <el-table-column prop="proName" label="项目名称" align="center"></el-table-column>
         <el-table-column prop="pipeNum" label="管片编号" align="center"></el-table-column>
         <el-table-column prop="turnName" label="转向" align="center"></el-table-column>
-        <el-table-column prop="reinforcementName" label="配筋" align="center"></el-table-column>
-        <el-table-column prop="groutingHolesName" label="注浆孔" align="center"></el-table-column>
-        <el-table-column prop="blockNumName" label="块号" align="center"></el-table-column>
+        <el-table-column
+          prop="reinforcementName"
+          label="配筋"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="groutingHolesName"
+          label="注浆孔"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="blockNumName"
+          label="块号"
+          align="center"
+        ></el-table-column>
         <el-table-column prop="mouldNum" label="模具" align="center"></el-table-column>
-        <el-table-column prop="intoModTime" label="入模时间" align="center"></el-table-column>
+        <el-table-column
+          prop="intoModTime"
+          label="入模时间"
+          align="center"
+        ></el-table-column>
         <!-- <el-table-column prop="pouringTime" label="浇筑时间" align="center"></el-table-column> -->
-        <el-table-column prop="checkTime" label="质检时间" align="center"></el-table-column>
-        <el-table-column prop="groupName" label="生产班组" align="center"></el-table-column>
+        <el-table-column
+          prop="checkTime"
+          label="质检时间"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="groupName"
+          label="生产班组"
+          align="center"
+        ></el-table-column>
         <el-table-column label="质量标注" align="center">
           <template #default="{ row }">
             <div>
-               {{ row.checkResult == 0 ? '未质检' : row.checkResult == 1 ? '合格' : row.checkResult == 2 ? '不合格' : row.checkResult == 3 ? '报废' : ''}}
+              {{
+                row.checkResult == 0
+                  ? "未质检"
+                  : row.checkResult == 1
+                  ? "合格"
+                  : row.checkResult == 2
+                  ? "不合格"
+                  : row.checkResult == 3
+                  ? "报废"
+                  : ""
+              }}
             </div>
           </template>
         </el-table-column>
         <el-table-column label="操作" align="center" width="300">
           <template #default="{ row }">
-            <template v-if="showButton('update') && row.checkResult !== 1">
-              <el-button class="table_btn" size="mini" @click="propIssue(row)">存在问题</el-button>
+            <template v-if="showButton('update') && [2, 3].includes(row.checkResult)">
+              <el-button class="table_btn" size="mini" @click="propIssue(row)"
+                >存在问题</el-button
+              >
             </template>
-            <el-button class="table_btn" size="mini" v-if="showButton('update') && row.checkResult == 0" @click="propUpdate(row)">修改环号</el-button>
-            <el-button class="table_btn" size="mini" v-if="showButton('delete')" @click="propCheckHistory(row)">质量追溯</el-button>
+            <el-button
+              class="table_btn"
+              size="mini"
+              v-if="showButton('update')"
+              @click="propUpdate(row)"
+              >修改环号</el-button
+            >
+            <el-button
+              class="table_btn"
+              size="mini"
+              v-if="showButton('update')"
+              @click="propUpdateTime(row)"
+              >修改时间</el-button
+            >
+            <el-button
+              class="table_btn"
+              size="mini"
+              v-if="showButton('delete')"
+              @click="propCheckHistory(row)"
+              >质量追溯</el-button
+            >
           </template>
         </el-table-column>
       </el-table>
@@ -156,24 +235,33 @@
         :page-sizes="[10, 20, 50, 100]"
         :page-size="pageSize"
         layout="total, sizes, prev, pager, next, jumper"
-        :total="total">
+        :total="total"
+      >
       </el-pagination>
     </div>
     <el-dialog
       class="prop_dialog"
       title="存在问题"
       :visible.sync="asyncDuctPiece"
-      width="35%">
-      <el-form ref="form" :model="formDuctPiece" :rules="rulesDuctPiece" label-width="auto" class="rule_form">
+      width="35%"
+    >
+      <el-form
+        ref="form"
+        :model="formDuctPiece"
+        :rules="rulesDuctPiece"
+        label-width="auto"
+        class="rule_form"
+      >
         <el-form-item label="质检结果:">
-          <span class="issue_status">{{checkResultStr}}</span>
+          <span class="issue_status">{{ checkResultStr }}</span>
         </el-form-item>
         <el-form-item label="存在问题:">
-          <el-input 
-            v-model="formDuctPiece.existProblem" 
+          <el-input
+            v-model="formDuctPiece.existProblem"
             type="textarea"
             disabled
-            placeholder="请输入存在问题"></el-input>
+            placeholder="请输入存在问题"
+          ></el-input>
         </el-form-item>
         <el-form-item label="问题图片:">
           <div class="problem_content">
@@ -181,25 +269,28 @@
               v-for="item in fileList"
               :key="item.id"
               class="problem_image"
-              :src="item.url">
+              :src="item.url"
+            >
             </el-image>
           </div>
         </el-form-item>
         <el-form-item label="问题处理结果:">
-          <el-input 
-            v-model="formDuctPiece.exeProResult" 
+          <el-input
+            v-model="formDuctPiece.exeProResult"
             type="textarea"
-            clearable 
-            placeholder="请输入问题处理结果"></el-input>
+            clearable
+            placeholder="请输入问题处理结果"
+          ></el-input>
         </el-form-item>
         <el-form-item label="备注:">
-          <el-input 
-            v-model="formDuctPiece.exeProNote" 
+          <el-input
+            v-model="formDuctPiece.exeProNote"
             type="textarea"
-            clearable 
+            clearable
             placeholder="请输入备注"
             maxlength="200"
-            show-word-limit></el-input>
+            show-word-limit
+          ></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer">
@@ -212,47 +303,49 @@
       class="prop_dialog"
       title="质量追溯"
       :visible.sync="asyncRetrospect"
-      width="70%">
+      width="70%"
+    >
       <div class="retrospect_content">
-        <div class="retrospect_content_title">
-          钢筋笼信息
-        </div>
+        <div class="retrospect_content_title">钢筋笼信息</div>
         <div class="retrospect_content_table">
-          <div 
-            class="table_item" 
-            :style="{width: `calc(100% / ${asyncCageInfo.length})`}"
+          <div
+            class="table_item"
+            :style="{ width: `calc(100% / ${asyncCageInfo.length})` }"
             v-for="item in asyncCageInfo"
-            :key="item.id">
-            <div class="table_item_chunk table_th">{{item.label}}</div>
-            <div class="table_item_chunk table_td">{{ 
-              item.value === 'steelCheckResult' ? showCheckResult(retrospectInfo[item.value]) : retrospectInfo[item.value]}}
+            :key="item.id"
+          >
+            <div class="table_item_chunk table_th">{{ item.label }}</div>
+            <div class="table_item_chunk table_td">
+              {{
+                item.value === "steelCheckResult"
+                  ? showCheckResult(retrospectInfo[item.value])
+                  : retrospectInfo[item.value]
+              }}
             </div>
           </div>
         </div>
-        <div class="retrospect_content_title">
-          模具信息
-        </div>
+        <div class="retrospect_content_title">模具信息</div>
         <div class="retrospect_content_table">
-          <div 
-            class="table_item" 
-            :style="{width: `calc(100% / ${asyncMouldInfo.length})`}"
+          <div
+            class="table_item"
+            :style="{ width: `calc(100% / ${asyncMouldInfo.length})` }"
             v-for="item in asyncMouldInfo"
-            :key="item.id">
-            <div class="table_item_chunk table_th">{{item.label}}</div>
-            <div class="table_item_chunk table_td">{{retrospectInfo[item.value]}}</div>
+            :key="item.id"
+          >
+            <div class="table_item_chunk table_th">{{ item.label }}</div>
+            <div class="table_item_chunk table_td">{{ retrospectInfo[item.value] }}</div>
           </div>
         </div>
-        <div class="retrospect_content_title">
-          管片信息
-        </div>
+        <div class="retrospect_content_title">管片信息</div>
         <div class="retrospect_content_table">
-          <div 
-            class="table_item" 
-            :style="{width: `calc(100% / ${asyncDuctpieceInfo.length})`}"
+          <div
+            class="table_item"
+            :style="{ width: `calc(100% / ${asyncDuctpieceInfo.length})` }"
             v-for="item in asyncDuctpieceInfo"
-            :key="item.id">
-            <div class="table_item_chunk table_th">{{item.label}}</div>
-            <div class="table_item_chunk table_td">{{retrospectInfo[item.value]}}</div>
+            :key="item.id"
+          >
+            <div class="table_item_chunk table_th">{{ item.label }}</div>
+            <div class="table_item_chunk table_td">{{ retrospectInfo[item.value] }}</div>
           </div>
         </div>
       </div>
@@ -261,329 +354,612 @@
       class="prop_dialog"
       :title="asyncTitle ? '新增管片' : '修改环号'"
       :visible.sync="asyncInsert"
-      width="35%">
-      <el-form ref="formInsert" :model="formInsert" :rules="rulesInsert" label-width="auto" class="rule_form">
-        <el-form-item label="项目名称:" prop="proId" v-if="asyncTtile">
-          <el-select v-model="formInsert.proId" clearable placeholder="请选择项目信息" @change="getAllSteelPipeData">
+      width="35%"
+    >
+      <el-form
+        ref="formInsert"
+        :model="formInsert"
+        :rules="rulesInsert"
+        label-width="auto"
+        class="rule_form"
+      >
+        <el-form-item label="项目名称:" prop="proId" v-if="asyncTitle">
+          <el-select
+            v-model="formInsert.proId"
+            clearable
+            placeholder="请选择项目信息"
+            @change="getAllSteelPipeData"
+          >
             <el-option
               v-for="item in projectData"
               :key="item.proId"
               :label="item.proName"
-              :value="item.proId">
+              :value="item.proId"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="配筋:" prop="reinforcementId" v-if="asyncTitle">
+          <el-select
+            v-model="formInsert.reinforcementId"
+            clearable
+            placeholder="请选择配筋"
+          >
+            <el-option
+              v-for="item in steelData"
+              :key="item.hasSteel"
+              :label="item.dictName"
+              :value="item.hasSteel"
+            >
             </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="环号:" prop="ringNum">
-          <el-input v-model="formInsert.ringNum" clearable placeholder="请输入环号"></el-input>
+          <el-input
+            v-model="formInsert.ringNum"
+            clearable
+            placeholder="请输入环号"
+          ></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer">
         <el-button @click="asyncInsert = false">取 消</el-button>
-        <el-button class="submit_btn" @click="asyncTitle ? submitInsertPipe() : submitUpdatePipe()">提 交</el-button>
+        <el-button
+          class="submit_btn"
+          @click="asyncTitle ? submitInsertPipe() : submitUpdatePipe()"
+          >提 交</el-button
+        >
+      </div>
+    </el-dialog>
+
+    <el-dialog
+      class="prop_dialog"
+      title="修改时间"
+      :visible.sync="asyncTime"
+      width="35%">
+      <el-form
+        ref="formTime"
+        :model="formTime"
+        :rules="rulesTime"
+        label-width="auto"
+        class="rule_form">
+        <el-form-item label="入模时间:" prop="inModTime">
+          <el-date-picker
+            v-model="formTime.inModTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择入模时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="浇筑时间:" prop="pouringTime">
+          <el-date-picker
+            v-model="formTime.pouringTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择浇筑时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="入窑时间:" prop="placingInTime">
+          <el-date-picker
+            v-model="formTime.placingInTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择入窑时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="出窑时间:" prop="placingOutTime">
+          <el-date-picker
+            v-model="formTime.placingOutTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择出窑时间"
+          >
+          </el-date-picker>
+        </el-form-item>    
+        <el-form-item label="出模时间:" prop="outModTime">
+          <el-date-picker
+            v-model="formTime.outModTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择入窑时间"
+          >
+          </el-date-picker>
+        </el-form-item>    
+        <el-form-item label="质检时间:" prop="checkTime">
+          <el-date-picker
+            v-model="formTime.checkTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择质检时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="入水养时间:" prop="inWaterTime" v-if="formTime.inWaterTime">
+          <el-date-picker
+            v-model="formTime.inWaterTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择入水养时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="出水养时间:" prop="outWaterTime" v-if="formTime.outWaterTime">
+          <el-date-picker
+            v-model="formTime.outWaterTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择出水养时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="入库时间:" prop="inRepoTime" v-if="formTime.inRepoTime">
+          <el-date-picker
+            v-model="formTime.inRepoTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择入库时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <!-- <el-form-item label="出库时间:" prop="intoModTime">
+          <el-date-picker
+            v-model="formTime.intoModTime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            type="datetime"
+            placeholder="选择出库时间"
+          >
+          </el-date-picker>
+        </el-form-item> -->
+      </el-form>
+      <div slot="footer">
+        <el-button @click="asyncTime = false">取 消</el-button>
+        <el-button
+          class="submit_btn"
+          @click="submitUpdateTime()"
+          >提 交
+        </el-button>
       </div>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import { cageInfo, mouldInfo, ductpiedceInfo } from './file/retrospect';
+import { cageInfo, mouldInfo, ductpiedceInfo } from "./file/retrospect";
+import { downLoadFile, throttle } from "../../plugins/public";
 import { buttonPinia } from '../../pinia';
-import { downLoadFile, throttle } from '../../plugins/public';
-  export default {
-    data() {
-      return {
-        projectId: '',
-        projectData: [],
-        ringNum: '', // 环号
-        groupId: '', // 班组
-        groupData: [], // 班组信息
-        checkResult: '', // 质量标注
-        reinforcement: '', // 配筋
-        reinforcementData: [], // 配筋信息
-        groutingHoles: '', // 注浆孔
-        groutingHolesData: [], // 注浆孔信息
-        blockNum: '', // 块号
-        blockNumData: [], // 块号信息
-        inModTime: '', // 入模时间
-        pouringTime: '', // 浇筑时间
-        checkTime: '', // 质检时间
-        pageNum: 1,
-        pageSize: 10,
-        total: 0,
-        loading: false,
-        ductpieceList: [],
-        asyncDuctPiece: false, // 存在问题弹窗
-        formDuctPiece: {}, // 表单信息
-        rulesDuctPiece: {}, // 表单校验规则
-        issueType: '',
-        asyncRetrospect: false, // 质量追溯弹窗
-        asyncCageInfo: cageInfo, // 钢筋笼信息
-        asyncMouldInfo: mouldInfo, // 模具信息
-        asyncDuctpieceInfo: ductpiedceInfo, // 管片信息
-        retrospectInfo: {},// 质量追溯信息
-        pipeId: '',
-        checkResultStr: '',
-        asyncTitle: true,
-        asyncInsert: false,
-        formInsert: {},
-        rulesInsert: {
-          proId: [{
+export default {
+  data() {
+    // const validatePass = (rule, value, callback) => {
+    //   if(value === '') {
+    //     callback(new Error('请再次输入密码'));
+    //   } else if(value < ) {
+
+    //   } else {
+    //     callback();
+    //   }
+    // }
+    return {
+      projectId: "",
+      projectData: [],
+      ringNum: "", // 环号
+      groupId: "", // 班组
+      groupData: [], // 班组信息
+      checkResult: "", // 质量标注
+      reinforcement: "", // 配筋
+      reinforcementData: [], // 配筋信息
+      groutingHoles: "", // 注浆孔
+      groutingHolesData: [], // 注浆孔信息
+      blockNum: "", // 块号
+      blockNumData: [], // 块号信息
+      inModTime: "", // 入模时间
+      pouringTime: "", // 浇筑时间
+      checkTime: "", // 质检时间
+      pageNum: 1,
+      pageSize: 10,
+      total: 0,
+      loading: false,
+      ductpieceList: [],
+      asyncDuctPiece: false, // 存在问题弹窗
+      formDuctPiece: {}, // 表单信息
+      rulesDuctPiece: {}, // 表单校验规则
+      issueType: "",
+      asyncRetrospect: false, // 质量追溯弹窗
+      asyncCageInfo: cageInfo, // 钢筋笼信息
+      asyncMouldInfo: mouldInfo, // 模具信息
+      asyncDuctpieceInfo: ductpiedceInfo, // 管片信息
+      retrospectInfo: {}, // 质量追溯信息
+      fileList: [],
+      pipeId: "",
+      checkResultStr: "",
+      asyncTitle: true,
+      asyncInsert: false,
+      formInsert: {},
+      rulesInsert: {
+        proId: [
+          {
             required: true,
-            message: '请选择项目名称',
-            trigger: 'blur'
-          }],
-          ringNum: [{
+            message: "请选择项目名称",
+            trigger: ["blur", "change"],
+          },
+        ],
+        reinforcementId: [
+          {
             required: true,
-            message: '请输入环号',
-            trigger: 'blur'
-          }],
-        },
-        proData: [],
-        steelData: [],
-        mouldData: [],
+            message: "请选择配筋",
+            trigger: ["blur", "change"],
+          },
+        ],
+        ringNum: [
+          {
+            required: true,
+            message: "请输入环号",
+            trigger: "blur",
+          },
+        ]
+      },
+      proData: [],
+      steelData: [],
+      mouldData: [],
+      changeTime: false,
+      asyncTime: false,
+      formTime: {},
+      rulesTime: {
+        inModTime: [{
+          required: true,
+          message: "请选择入模时间",
+          trigger: ["blur", "change"],                                  
+        }],
+        outModTime: [{
+          required: true,
+          message: "请选择出模时间",
+          trigger: ["blur", "change"],
+        }],
+        pouringTime: [{
+          required: true,
+          message: "请选择浇筑时间",
+          trigger: ["blur", "change"],
+        }],
+        placingInTime: [{
+          required: true,
+          message: "请选择入窑时间",
+          trigger: ["blur", "change"],
+        }],
+        placingOutTime: [{
+          required: true,
+          message: "请选择出窑时间",
+          trigger: ["blur", "change"],
+        }],
+        checkTime: [{
+          required: true,
+          message: "请选择质检时间",
+          trigger: ["blur", "change"],
+        }],
+        inWaterTime: [{
+          required: true,
+          message: "请选择入池时间",
+          trigger: ["blur", "change"],
+        }],
+        outWaterTime: [{
+          required: true,
+          message: "请选择出池时间",
+          trigger: ["blur", "change"],
+        }],
+        inRepoTime: [{
+          required: true,
+          message: "请选择入库时间",
+          trigger: ["blur", "change"],
+        }]
+      }
+    };
+  },
+  mounted() {
+    this.getAllProjects();
+    this.getAllGroupData();
+    this.searchDuctpiecePLMList(true);
+  },
+  methods: {
+    // 根据项目获取钢筋笼 模具信息
+    async getAllSteelPipeData(proId) {
+      if (proId) {
+        this.steelData = [];
+        const { data } = await this.$api.Basics.getProjectSystemInfoData({
+          proId: proId,
+        });
+        this.steelData = data.proHas;
+      } else {
+        this.$set(this.formInsert, "reinforcementId", "");
+        this.steelData = [];
       }
     },
-    mounted() {
-      this.getAllProjects();
-      this.getAllGroupData();
-      this.searchDuctpiecePLMList(true);
+    // 获取全部班组
+    async getAllGroupData() {
+      const { data } = await this.$api.DuctpiecePLM.getAllGroupData();
+      this.groupData = data;
     },
-    methods: {
-      // 根据项目获取钢筋笼 模具信息
-      async getAllSteelPipeData(proId) {
-        this.steelData = [];
-        this.mouldData = [];
-        const { data } = await this.$api.DuctpiecePLM.getAllSteelPipeData({
-          proId: proId
-        });
-        this.steelData = data.steel;
-        this.mouldData = data.mod;
-      },
-      // 获取全部班组
-      async getAllGroupData() {
-        const { data } = await this.$api.DuctpiecePLM.getAllGroupData();
-        this.groupData = data;
-      },
-      // 获取全部项目
-      async getAllProjects() {
-        const { data } = await this.$api.Engineer.getAllProjects();
-        this.projectData = data;
-      },
-      // 查询管片信息
-      searchDuctpiecePLMList(bol) {
-        if(bol) {
-          this.pageNum = 1;
-        }
-        this.loading = true;
-        this.ductpieceList = [];
-        this.$api.DuctpiecePLM.searchDuctpiecePLMList({
-          pageNum: this.pageNum,
-          pageSize: this.pageSize,
-          proId: this.projectId,
-          ringNum: this.ringNum,
-          groupId: this.groupId,
-          checkResult: this.checkResult,
-          reinforcement: this.reinforcement,
-          groutingHoles: this.groutingHoles,
-          blockNum: this.blockNum,
-          inModStartTime: this.inModTime ? this.inModTime[0] + ' 00:00:00' : '',
-          inModEndTime: this.inModTime ? this.inModTime[1] + ' 23:59:59' : '',
-          pouringStartTime: this.pouringTime ? this.pouringTime[0] + ' 00:00:00' : '',
-          pouringEndTime: this.pouringTime ? this.pouringTime[1] + ' 23:59:59' : '',
-          checkStartTime: this.checkTime ? this.checkTime[0] + ' 00:00:00' : '',
-          checkEndTime: this.checkTime ? this.checkTime[1] + ' 23:59:59' : ''
-        }).then((res) => {
-          if(res.success) {
+    // 获取全部项目
+    async getAllProjects() {
+      const { data } = await this.$api.Engineer.getAllProjects();
+      this.projectData = data;
+    },
+    // 查询管片信息
+    searchDuctpiecePLMList(bol) {
+      if (bol) {
+        this.pageNum = 1;
+      }
+      this.loading = true;
+      this.ductpieceList = [];
+      this.$api.DuctpiecePLM.searchDuctpiecePLMList({
+        pageNum: this.pageNum,
+        pageSize: this.pageSize,
+        proId: this.projectId,
+        ringNum: this.ringNum,
+        groupId: this.groupId,
+        checkResult: this.checkResult,
+        reinforcement: this.reinforcement,
+        groutingHoles: this.groutingHoles,
+        blockNum: this.blockNum,
+        inModStartTime: this.inModTime ? this.inModTime[0] + " 00:00:00" : "",
+        inModEndTime: this.inModTime ? this.inModTime[1] + " 23:59:59" : "",
+        pouringStartTime: this.pouringTime ? this.pouringTime[0] + " 00:00:00" : "",
+        pouringEndTime: this.pouringTime ? this.pouringTime[1] + " 23:59:59" : "",
+        checkStartTime: this.checkTime ? this.checkTime[0] + " 00:00:00" : "",
+        checkEndTime: this.checkTime ? this.checkTime[1] + " 23:59:59" : "",
+      })
+        .then((res) => {
+          if (res.success) {
             this.total = res.data.total;
             this.ductpieceList = res.data.list;
           }
           this.loading = false;
-        }).catch(() => {
+        })
+        .catch(() => {
           this.loading = false;
-        })
-      },
-      // 打开新增管片信息
-      propInsert() {
-        this.asyncTitle = true;
-        this.asyncInsert = true;
-        this.getAllProjects();
-      },
-      // 打开修改环号信息
-      propUpdate(row) {
-        this.asyncTitle = false;
-        this.asyncInsert = true;
-        this.$set(this.formInsert, 'pipeNum', row.pipeNum);
-        this.$set(this.formInsert, 'ringNum', row.ringNum);
-      },
-      // 导出Excel
-      exportExcel() {
-        this.$api.System.GETEXPORTTOKENDATA({
-          ringNum: this.ringNum,
-          groupId: this.groupId,
-          checkResult: this.checkResult,
-          reinforcement: this.reinforcement,
-          groutingHoles: this.groutingHoles,
-          blockNum: this.blockNum,
-          inModStartTime: this.inModTime[0],
-          inModEndTime: this.inModTime[1],
-          pouringStartTime: this.pouringTime[0],
-          pouringEndTime: this.pouringTime[1],
-          checkStartTime: this.checkTime[0],
-          checkEndTime: this.checkTime[1]
-        }).then((res) => {
-          if(res.success) {
-            downLoadFile(res.data, '/m/pipeInfo/export');
-          }
-        })
-      },
-      // 打开存在问题
-      propIssue(row) {
-        this.pipeId = row.pipeId
-        this.checkResultStr = row.checkResultStr;
-        this.issueType = row.type;
-        this.asyncDuctPiece = true;
-        this.$api.DuctpiecePLM.getProblemInfo({
-          pipeId: row.pipeId
-        }).then((res) => {
-          if(res.success) {
-            this.$set(this.formDuctPiece, 'pipeCheckId', res.data.pipeCheckId);
-            this.$set(this.formDuctPiece, 'existProblem', res.data.existProblem);
-            this.$set(this.formDuctPiece, 'exeProResult', res.data.exeProResult);
-            this.$set(this.formDuctPiece, 'exeProNote', res.data.exeProNote);
-            this.fileList = res.data.files.map((item, index) => {
-              return {
-                id: index + 1,
-                url: `https://szpipe.thhy-tj.com/${item}`
-              }
-            })
-          }
-        })
-      },
-      // 打开质量追溯
-      propCheckHistory(row) {
-        this.asyncRetrospect = true;
-        this.retrospectInfo = {};
-        this.$api.DuctpiecePLM.getCheckHistoryInfo({
-          pipeId: row.pipeId
-        }).then((res) => {
-          if(res.success) {
-            this.retrospectInfo = res.data;
-          }
-        })
-      },
-      // 提交存在问题
-      submitInsertForm: throttle(function() {
-        const params = Object.assign({}, this.formDuctPiece);
-        params.checkResultStr = this.checkResultStr;
-        params.pipeId = this.pipeId;
-        this.$api.DuctpiecePLM.insertIssueInfo(params).then((res) => {
-          if(res.success) {
-            this.asyncDuctPiece = false;
-            this.searchDuctpiecePLMList(true);
-            this.$message.success('添加成功!');
-          } else {
-            this.$message.warning(res.statusMsg);
-          }
-        })
-      }, 3000),
-      // 提交新增管片信息
-      submitInsertPipe: throttle(function() {
-        this.$refs.formInsert.validate((valid) => {
-          if(valid) {
-            const params = Object.assign({}, this.formInsert);
-            this.$api.DuctpiecePLM.insertPipeData(params).then((res) => {
-              if(res.statusMsg === 'ok') {
-                this.asyncInsert = false;
-                this.searchDuctpiecePLMList(true);
-                this.$message.success('新增成功!');
-              } else {
-                this.$message.warning(res.statusMsg);
-              }
-            })
-          }
-        })
-      }, 3000),
-      // 提交修改环号信息
-      submitUpdatePipe: throttle(function() {
-        this.$refs.formInsert.validate((valid) => {
-          if(valid) {
-            const params = Object.assign({}, this.formInsert);
-            this.$api.DuctpiecePLM.updataRingNumData(params).then((res) => {
-              if(res.statusMsg === 'ok') {
-                this.asyncInsert = false;
-                this.searchDuctpiecePLMList(true);
-                this.$message.success('修改成功!');
-              } else {
-                this.$message.warning(res.statusMsg);
-              }
-            })
-          }
-        })
-      }, 3000),
-      // 
-      showCheckResult(value) {
-        return !value ? '' : value == 1 ? '合格' : '存在问题';
-      },
-      // 根据项目获取尺寸 配筋 块号信息
-      changeHeaderProject(data) {
-          this.blockNum = '';
-          this.reinforcement = '';
-          this.groutingHoles = '';
-          this.groutingHolesData = [];
-          this.blockNumData = [];
-          this.reinforcementData = [];
-        if(data) {
-          this.$api.Basics.getProjectSystemInfoData({
-            proId: data
-          }).then((res) => {
-            this.groutingHolesData = res.data.proGroutings;
-            this.blockNumData = res.data.proBloks;
-            this.reinforcementData = res.data.proHas;
-          })
-        }
-      },
-      // 切换页数
-      changePageNum(page) {
-        this.pageNum = page;
-        this.searchDuctpiecePLMList();
-      },
-      // 切换每页条数
-      changePageSize(size) {
-        this.pageSize = size;
-        this.searchDuctpiecePLMList();
-      },
-      // 判断按钮权限信息
-      showButton(str) {
-        const pinia = buttonPinia();
-        return pinia.$state.buttonInfo.includes(str);
-      },
+        });
     },
-    watch: {
-      asyncDuctpieceInfo(bol) {
-        if(!bol) {
-          this.formDuctPiece = {};
-          this.pipeId = '';
-          this.checkResultStr = '';
-          this.fileList = [];
+    // 打开新增管片信息
+    propInsert() {
+      this.asyncTitle = true;
+      this.asyncInsert = true;
+      this.getAllProjects();
+    },
+    // 打开修改环号信息
+    propUpdate(row) {
+      this.asyncTitle = false;
+      this.asyncInsert = true;
+      this.$set(this.formInsert, "pipeNum", row.pipeNum);
+      this.$set(this.formInsert, "ringNum", row.ringNum);
+    },
+    // 打开修改时间
+    propUpdateTime(row) {
+      this.asyncTime = true;
+      this.$set(this.formTime, "pipeNum", row.pipeNum);
+      this.$set(this.formTime, "ringNum", row.ringNum);
+      this.$api.DuctpiecePLM.getPipeTimeData({
+        pipeNum: row.pipeNum
+      }).then(res => {
+        if(res.success) {
+          this.$set(this.formTime, 'inModTime', res.data.inModTime);
+          this.$set(this.formTime, 'outModTime', res.data.outModTime);
+          this.$set(this.formTime, 'pouringTime', res.data.pouringTime);
+          this.$set(this.formTime, 'placingInTime', res.data.placingInTime);
+          this.$set(this.formTime, 'placingOutTime', res.data.placingOutTime);
+          this.$set(this.formTime, 'checkTime', res.data.checkTime);
+          if(res.data.inWaterFlag) {
+            this.$set(this.formTime, 'inWaterTime', res.data.inWaterTime);
+          }
+          if(res.data.OutWaterFlag) {
+            this.$set(this.formTime, 'outWaterTime', res.data.outWaterTime);
+          }
+          if(res.data.inRepoFlag) {
+            this.$set(this.formTime, 'inRepoTime', res.data.inRepoTime);
+          }
+          // this.$set(this.formInsert, '', res.data.);
+        } else {
+         this.$message.warning(res.statusMsg);
         }
-      },
-      asyncInsert(bol) {
-        if(!bol) {
-          this.steelData = [];
-          this.mouldData = [];
-          this.formInsert = {};
-          this.$refs.formInsert.resetFields();
+      })
+    },
+    // 导出Excel
+    exportExcel() {
+      this.$api.System.GETEXPORTTOKENDATA({
+        ringNum: this.ringNum,
+        groupId: this.groupId,
+        checkResult: this.checkResult,
+        reinforcement: this.reinforcement,
+        groutingHoles: this.groutingHoles,
+        blockNum: this.blockNum,
+        inModStartTime: this.inModTime[0],
+        inModEndTime: this.inModTime[1],
+        pouringStartTime: this.pouringTime[0],
+        pouringEndTime: this.pouringTime[1],
+        checkStartTime: this.checkTime[0],
+        checkEndTime: this.checkTime[1],
+      }).then((res) => {
+        if (res.success) {
+          downLoadFile(res.data, "/m/pipeInfo/export");
         }
+      });
+    },
+    // 打开存在问题
+    propIssue(row) {
+      this.pipeId = row.pipeId;
+      this.checkResultStr = row.checkResultStr;
+      this.issueType = row.type;
+      this.asyncDuctPiece = true;
+      this.$api.DuctpiecePLM.getProblemInfo({
+        pipeId: row.pipeId,
+      }).then((res) => {
+        if (res.success) {
+          this.$set(this.formDuctPiece, "pipeCheckId", res.data.pipeCheckId);
+          this.$set(this.formDuctPiece, "existProblem", res.data.existProblem);
+          this.$set(this.formDuctPiece, "exeProResult", res.data.exeProResult);
+          this.$set(this.formDuctPiece, "exeProNote", res.data.exeProNote);
+          this.fileList = res.data.files.map((item, index) => {
+            return {
+              id: index + 1,
+              url: `https://pipe.thhy-tj.com/${item}`,
+            };
+          });
+        }
+      });
+    },
+    // 打开质量追溯
+    propCheckHistory(row) {
+      this.asyncRetrospect = true;
+      this.retrospectInfo = {};
+      this.$api.DuctpiecePLM.getCheckHistoryInfo({
+        pipeId: row.pipeId,
+      }).then((res) => {
+        if (res.success) {
+          this.retrospectInfo = res.data;
+        }
+      });
+    },
+    // 提交存在问题
+    submitInsertForm: throttle(function () {
+      const params = Object.assign({}, this.formDuctPiece);
+      params.checkResultStr = this.checkResultStr;
+      params.pipeId = this.pipeId;
+      this.$api.DuctpiecePLM.insertIssueInfo(params).then((res) => {
+        if (res.success) {
+          this.asyncDuctPiece = false;
+          this.searchDuctpiecePLMList(true);
+          this.$message.success("添加成功!");
+        } else {
+          this.$message.warning(res.statusMsg);
+        }
+      });
+    }, 3000),
+    // 提交新增管片信息
+    submitInsertPipe: throttle(function () {
+      this.$refs.formInsert.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formInsert);
+          this.$api.DuctpiecePLM.insertPipeData(params).then((res) => {
+            if (res.statusMsg === "ok") {
+              this.asyncInsert = false;
+              this.searchDuctpiecePLMList(true);
+              this.$message.success("新增成功!");
+            } else {
+              this.$message.warning(res.statusMsg);
+            }
+          });
+        }
+      });
+    }, 3000),
+    // 提交修改环号信息
+    submitUpdatePipe: throttle(function () {
+      this.$refs.formInsert.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formInsert);
+          this.$api.DuctpiecePLM.updataRingNumData(params).then((res) => {
+            if (res.statusMsg === "ok") {
+              this.asyncInsert = false;
+              this.searchDuctpiecePLMList(true);
+              this.$message.success("修改成功!");
+            } else {
+              this.$message.warning(res.statusMsg);
+            }
+          });
+        }
+      });
+    }, 3000),
+    // 提交修改时间信息
+    submitUpdateTime: throttle(function() {
+      this.$refs.formTime.validate((valid) => {
+        if(valid) {
+          const params = Object.assign({}, this.formTime);
+          this.$api.DuctpiecePLM.updatePipeTimeData(params).then((res) => {
+            if (res.statusMsg === "ok") {
+              this.asyncTime = false;
+              this.searchDuctpiecePLMList(true);
+              this.$message.success("修改成功!");
+            } else {
+              this.$message.warning(res.statusMsg);
+            }
+          });
+        }
+      })
+    }, 3000),
+    //
+    showCheckResult(value) {
+      return !value ? "" : value == 1 ? "合格" : "存在问题";
+    },
+    // 根据项目获取尺寸 配筋 块号信息
+    changeHeaderProject(data) {
+      this.blockNum = "";
+      this.reinforcement = "";
+      this.groutingHoles = "";
+      this.groutingHolesData = [];
+      this.blockNumData = [];
+      this.reinforcementData = [];
+      if (data) {
+        this.$api.Basics.getProjectSystemInfoData({
+          proId: data,
+        }).then((res) => {
+          this.groutingHolesData = res.data.proGroutings;
+          this.blockNumData = res.data.proBloks;
+          this.reinforcementData = res.data.proHas;
+        });
+      }
+    },
+    // 转换毫秒
+    transitionMsec(time) {
+      let msec = 0;
+      const date = Date.parse(new Date(time));
+      console.log(date,'==-=-=-')
+      return msec;
+    },
+    // 切换页数
+    changePageNum(page) {
+      this.pageNum = page;
+      this.searchDuctpiecePLMList();
+    },
+    // 切换每页条数
+    changePageSize(size) {
+      this.pageSize = size;
+      this.searchDuctpiecePLMList();
+    },
+    // 判断按钮权限信息
+    showButton(str) {
+      const pinia = buttonPinia();
+      return pinia.$state.buttonInfo.includes(str);
+    },
+  },
+  watch: {
+    asyncDuctpieceInfo(bol) {
+      if (!bol) {
+        this.formDuctPiece = {};
+        this.pipeId = "";
+        this.checkResultStr = "";
+        this.fileList = [];
+      }
+    },
+    asyncInsert(bol) {
+      if (!bol) {
+        this.steelData = [];
+        this.formInsert = {};
+        this.$refs.formInsert.resetFields();
+      }
+    },
+    asyncTime(bol) {
+      if(!bol) {
+        this.formTime = {};
+        this.$refs.formTime.resetFields();
       }
     }
-  }
+  },
+};
 </script>
 
 <style lang="scss" scoped>
-@import '../../style/layout-main.scss';
+@import "../../style/layout-main.scss";
 
 .issue_status {
-  color: #F42829;
+  color: #f42829;
 }
 
 .retrospect_content {
@@ -594,7 +970,7 @@
     padding: 0 15px 15px;
     font-size: 16px;
     font-weight: 600;
-    color: #FFF;
+    color: #fff;
     border-bottom: 1px solid #0d5274;
 
     &::before {
@@ -605,7 +981,7 @@
       transform: translateY(-85%);
       width: 3px;
       height: 50%;
-      background: #18F6F8;
+      background: #18f6f8;
     }
   }
 
@@ -614,22 +990,22 @@
     margin: 10px 10px 10px 0;
 
     .table_item {
-      border: 1px solid #1CB7E0;
+      border: 1px solid #1cb7e0;
       border-right: none;
 
       &:last-child {
-        border-right: 1px solid #1CB7E0;
+        border-right: 1px solid #1cb7e0;
       }
 
       .table_item_chunk {
         padding: 10px;
-        color: #18F6F8;
+        color: #18f6f8;
         text-align: center;
       }
 
       .table_th {
-        border-bottom: 1px solid #1CB7E0;
-        background: #082F57;
+        border-bottom: 1px solid #1cb7e0;
+        background: #082f57;
       }
     }
   }
@@ -649,4 +1025,4 @@
 ::v-deep .el-date-editor .el-range-separator {
   color: #fff !important;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3