From 145cb213e3dd14a88e685b86b336cfca5629bb15 Mon Sep 17 00:00:00 2001
From: 叶松 <2217086471@qq.com>
Date: 星期二, 10 十月 2023 16:36:51 +0800
Subject: [PATCH] 钢筋笼明细和管片明细完成

---
 web/src/api/modules/ductRaw.js                             |    3 
 web/src/api/modules/production.js                          |    4 
 web/src/views/DuctpiecePLM/PlanManage/DuctPlan.vue         |  128 +++++++++++++++++++++++++
 web/src/views/DuctpiecePLM/PlanManage/RebardemandIndex.vue |  122 ++++++++++++++++++++++++
 4 files changed, 254 insertions(+), 3 deletions(-)

diff --git a/web/src/api/modules/ductRaw.js b/web/src/api/modules/ductRaw.js
index d9951f5..53e7a82 100644
--- a/web/src/api/modules/ductRaw.js
+++ b/web/src/api/modules/ductRaw.js
@@ -59,6 +59,9 @@
     //获取月份列表
     getMonthsList: params =>
     axios.post('/materials/pipePlan/monthList', params),
+    //获取管片明细
+    searchDuctDetails: params =>
+        axios.post('/materials/needYear/selectPipeInfo', params),
 
     /**
      * 原料实际放量
diff --git a/web/src/api/modules/production.js b/web/src/api/modules/production.js
index 175c804..c90cbcb 100644
--- a/web/src/api/modules/production.js
+++ b/web/src/api/modules/production.js
@@ -20,7 +20,9 @@
   // 获取钢筋需求计划详情信息
   getRebardemandInfo: (params) =>
     axios.get('/materials/needYear/needYearInfo', {params}),
-
+  //钢筋笼生产计划的明细
+  detailsBearProducts: (params) =>
+    axios.post('/materials/needYear/selectSteelInfo', params),
   /**
    * 钢筋理论耗量模块接口
   */
diff --git a/web/src/views/DuctpiecePLM/PlanManage/DuctPlan.vue b/web/src/views/DuctpiecePLM/PlanManage/DuctPlan.vue
index 7cbf4d0..513539b 100644
--- a/web/src/views/DuctpiecePLM/PlanManage/DuctPlan.vue
+++ b/web/src/views/DuctpiecePLM/PlanManage/DuctPlan.vue
@@ -51,7 +51,7 @@
                     </div>
                     <div class="plan_content_items">
                         <div class="plan_content_title">已生产管片数量(环)</div>
-                        <div class="plan_content_datas" v-for="(it,index) in item.productedArray" :key="index">{{it.split('.')[0]}}</div>
+                        <div class="plan_content_datas" v-for="(it,index) in item.productedArray" style="cursor:pointer" @click="showDetails(item,index+1)" :key="index">{{it.split('.')[0]}}</div>
                     </div>
                 </div>
             </div>
@@ -69,6 +69,50 @@
         :total="total">
       </el-pagination>
     </div>
+    <!-- 钢筋笼明细弹框 -->
+    <el-dialog
+      class="prop_dialog"
+      title="管片明细"
+      :visible.sync="asyncBeardetails"
+      width="65%">
+      <div class="bears_content">
+        <el-table
+          v-loading="loadingDetails"
+          :data="bearDetails"
+          height="100%">
+          <el-table-column align="center" label="序号" width="60">
+            <template #default="scope">
+              <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="pipeNum" label="管片编号" align="center" width="160"></el-table-column>
+          <el-table-column prop="turn" label="转向" align="center"  width="120"></el-table-column>
+          <el-table-column prop="reinforcement" label="配筋" align="center"></el-table-column>
+          <el-table-column prop="groutingHoles" label="注浆孔" align="center" ></el-table-column>
+          <el-table-column prop="blockNum" 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"  width="160"></el-table-column>
+          <el-table-column prop="pouringTime" label="浇筑时间" align="center"  width="160"></el-table-column>
+          <el-table-column prop="checkTime" label="质检时间" align="center"  width="160"></el-table-column>
+          <el-table-column prop="groupName" label="生产班组" align="center" ></el-table-column>
+          <el-table-column prop="proName" label="项目" align="center"  width="250" show-overflow-tooltip></el-table-column>
+          <el-table-column prop="checkResult" label="质量标注" align="center" ></el-table-column>
+        </el-table>
+      </div>
+      <div class="bear_footer">
+        <el-pagination
+          background
+          @current-change="changeDetailsPageNum"
+          @size-change="changeDetailsPageSize"
+          :current-page="pageNumDetails"
+          :page-sizes="[10, 20, 50, 100]"
+          :page-size="pageSizeDetails"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="totalDetails">
+        </el-pagination>
+      </div>
+    </el-dialog>
     <el-dialog
       class="prop_dialog"
       :title="asyncTitle===true ? '新增' :asyncTitle===false ? '修改':'查看'"
@@ -142,6 +186,16 @@
         allMonths:null,//计算出来的总数
         rowId:'',//某一行id
         dataList: [], //管片生产计划信息
+        asyncBeardetails:false,
+        bearDetails:[],//管片明细
+        pageNumDetails:1,
+        pageSizeDetails:10,
+        totalDetails:0,
+        loadingDetails:true,
+        proId:null,
+        sizeId:null,
+        reinforcementId:null,
+        years:null,
         optionsProject:[],//项目名称
         asyncTitle: true, // 对话框title 新增:true  修改:false
         asyncVisible: false, // 添加 修改对话框
@@ -210,6 +264,50 @@
             }
         })
       },
+      //展示管片明细弹框
+      showDetails(val,num){
+        this.asyncBeardetails = true
+        if(num ===13){
+          this.asyncBeardetails = false
+          return
+        }
+        this.proId = val.proId
+        this.sizeId = val.size
+        this.years = num<10?val.planYear+'-0'+num:val.planYear+'-'+num
+        this.searchBearDetails(val.proId,val.size,this.years)
+      },
+      //查询管片明细
+      searchBearDetails(proId,sizeId,years){
+        this.loadingDetails = true;
+        this.bearDetails = [];
+        this.$api.Ducts.searchDuctDetails({
+          proId: proId,
+          sizeId:sizeId,
+          yearAndMonth:years,
+          pageNum: this.pageNumDetails,
+          pageSize: this.pageSizeDetails
+        }).then((res) => {
+          if(res.statusMsg === 'ok') {
+            this.totalDetails = res.data.total;
+            this.bearDetails = res.data.list;
+          }else{
+            this.$message.warning(res.statusMsg)
+          }
+          this.loadingDetails = false;
+        }).catch(() => {
+          this.loadingDetails = false
+        });
+      },
+      // 切换管片明细页数
+      changeDetailsPageNum(page) {
+        this.pageNumDetails = page;
+        this.searchBearDetails(this.proId,this.sizeId,this.years);
+      },
+      // 切换管片明细每页条数
+      changeDetailsPageSize(size) {
+        this.pageSizeDetails = size;
+        this.searchBearDetails(this.proId,this.sizeId,this.years);
+      },
      //获得所有项目名称
      getAllProjects(){
         let obj = {
@@ -226,7 +324,7 @@
      },
      //通过选择项目选择尺寸
      changeSizes(val){
-      this.ruleForm.size = ""
+      this.$set(this.ruleForm,'size','')
       this.$api.Reinforce.searchProjectSize({proId:val,pageNum: 1,
           pageSize:100000000}).then(res=>{
         if(res.statusMsg === 'ok'){
@@ -376,6 +474,32 @@
 <style lang="scss" scoped>
 @import '../../../style/layout-main.scss';
 
+.bears_content{
+  height: 500px;
+  /deep/ .el-table th.el-table__cell{
+    background:#082F57!important;
+    color: #18F6F8;
+    border-right: 1px solid #18F6F8!important;
+    border-bottom: 1px solid #18F6F8!important;
+    border-top: 1px solid #18F6F8!important;
+    &:last-child{
+      border-right-color:transparent!important;
+    }
+  }
+  /deep/.el-table .el-table__cell{
+    border-left: 1px solid #18F6F8!important;
+    border-right: 1px solid #18F6F8!important;
+    border-bottom: 1px solid #18F6F8!important;
+  }
+  /deep/.el-table tr:nth-of-type(even){
+    background: transparent;
+  }
+}
+.bear_footer{
+  text-align: right;
+  line-height: 20px;
+  margin: 15px 0 15px;
+}
 .months_items{
    display: flex;
     flex-wrap: wrap;
diff --git a/web/src/views/DuctpiecePLM/PlanManage/RebardemandIndex.vue b/web/src/views/DuctpiecePLM/PlanManage/RebardemandIndex.vue
index 6fb0035..180c111 100644
--- a/web/src/views/DuctpiecePLM/PlanManage/RebardemandIndex.vue
+++ b/web/src/views/DuctpiecePLM/PlanManage/RebardemandIndex.vue
@@ -76,6 +76,8 @@
             <div 
               v-for="(element, ids) in item.needNums"
               :key="ids" 
+              @click="showDetails(item,element)"
+              style="cursor: pointer;"
               class="number_item"
               :class="{
                 'item_f': element.needNums > element.okNum
@@ -96,6 +98,48 @@
         :total="total">
       </el-pagination>
     </div>
+    <!-- 钢筋笼明细弹框 -->
+    <el-dialog
+      class="prop_dialog"
+      title="钢筋笼明细"
+      :visible.sync="asyncBeardetails"
+      width="65%">
+      <div class="bears_content">
+        <el-table
+          v-loading="loadingDetails"
+          :data="bearDetails"
+          height="100%">
+          <el-table-column align="center" label="序号" width="60">
+            <template #default="scope">
+              <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="produceNumber" label="钢筋笼编号" align="center" width="160"></el-table-column>
+          <el-table-column prop="proName" label="项目名称" align="center" width="250" show-overflow-tooltip></el-table-column>
+          <el-table-column prop="sizeName" label="尺寸" align="center" ></el-table-column>
+          <el-table-column prop="reinforcementName" label="配筋" align="center"></el-table-column>
+          <el-table-column prop="blockName" label="块号" align="center" ></el-table-column>
+          <el-table-column prop="groupName" label="生产班组" align="center" ></el-table-column>
+          <el-table-column prop="quality_time" label="质检时间" align="center" width="160"></el-table-column>
+          <el-table-column prop="createUser" label="制作人" align="center" ></el-table-column>
+          <el-table-column prop="checkName" label="质检人" align="center" ></el-table-column>
+          <el-table-column prop="isQualified" label="质量标注" align="center" ></el-table-column>
+          <el-table-column prop="isModel" label="是否入模" align="center" ></el-table-column>
+        </el-table>
+      </div>
+      <div class="bear_footer">
+        <el-pagination
+          background
+          @current-change="changeDetailsPageNum"
+          @size-change="changeDetailsPageSize"
+          :current-page="pageNumDetails"
+          :page-sizes="[10, 20, 50, 100]"
+          :page-size="pageSizeDetails"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="totalDetails">
+        </el-pagination>
+      </div>
+    </el-dialog>
     <!-- 新增计划信息 修改计划信息 -->
     <el-dialog
       class="prop_dialog"
@@ -197,9 +241,19 @@
         pageSize: 6,
         total: 0,
         loading: true,
+        bearDetails:[],//钢筋笼明细
+        pageNumDetails:1,
+        pageSizeDetails:10,
+        totalDetails:0,
+        loadingDetails:true,
+        proId:null,
+        sizeId:null,
+        reinforcementId:null,
+        years:null,
         rebardemandList: [],
         asyncTitle: true, // true 新增计划信息 false 修改计划信息
         asyncRebardemand: false, // 弹窗
+        asyncBeardetails:false,
         formcRebardemand: {}, // 表单信息
         rulescRebardemand: {
           proId: [{
@@ -271,6 +325,48 @@
         }).catch(() => {
           this.loading = false
         });
+      },
+      //展示钢筋笼明细弹框
+      showDetails(val,num){
+        this.asyncBeardetails = true
+        this.proId = val.proId
+        this.sizeId = val.sizeId
+        this.reinforcementId = val.reinforcementId
+        this.years = val.years
+        this.searchBearDetails(val.proId,val.sizeId,num.reinforcementId,val.years)
+      },
+      //查询钢筋笼明细
+      searchBearDetails(proId,sizeId,reinforcementId,years){
+        this.loadingDetails = true;
+        this.bearDetails = [];
+        this.$api.Production.detailsBearProducts({
+          proId: proId,
+          sizeId:sizeId,
+          reinforcementId:reinforcementId,
+          years:years,
+          pageNum: this.pageNumDetails,
+          pageSize: this.pageSizeDetails
+        }).then((res) => {
+          if(res.statusMsg === 'ok') {
+            this.totalDetails = res.data.total;
+            this.bearDetails = res.data.list;
+          }else{
+            this.$message.warning(res.statusMsg)
+          }
+          this.loadingDetails = false;
+        }).catch(() => {
+          this.loadingDetails = false
+        });
+      },
+      // 切换钢筋笼明细页数
+      changeDetailsPageNum(page) {
+        this.pageNumDetails = page;
+        this.searchBearDetails(this.proId,this.sizeId,this.reinforcementId,this.years);
+      },
+      // 切换钢筋笼明细每页条数
+      changeDetailsPageSize(size) {
+        this.pageSizeDetails = size;
+        this.searchBearDetails(this.proId,this.sizeId,this.reinforcementId,this.years);
       },
       // 打开添加信息 
       propInsert() {
@@ -437,6 +533,32 @@
 <style lang="scss" scoped>
 @import '../../../style/layout-main.scss';
 
+.bears_content{
+  height: 500px;
+  /deep/ .el-table th.el-table__cell{
+    background:#082F57!important;
+    color: #18F6F8;
+    border-right: 1px solid #18F6F8!important;
+    border-bottom: 1px solid #18F6F8!important;
+    border-top: 1px solid #18F6F8!important;
+    &:last-child{
+      border-right-color:transparent!important;
+    }
+  }
+  /deep/.el-table .el-table__cell{
+    border-left: 1px solid #18F6F8!important;
+    border-right: 1px solid #18F6F8!important;
+    border-bottom: 1px solid #18F6F8!important;
+  }
+  /deep/.el-table tr:nth-of-type(even){
+    background: transparent;
+  }
+}
+.bear_footer{
+  text-align: right;
+  line-height: 20px;
+  margin: 15px 0 15px;
+}
 .manin_rebar_content {
   position: relative;
   display: flex;

--
Gitblit v1.9.3