lxf 1 жил өмнө
parent
commit
d027bd1f5a

+ 46 - 0
src/api/shengde/group/spectaculars/dailyBoard.js

@@ -0,0 +1,46 @@
+import request from '@/router/axios'
+
+// 每日看板-今日生产出库数据
+export function productionStorageBoard(data = {}) {
+  return request({
+    url: '/saas-wms/saas/wms/tprowmsstockregistrationdetail/productionStorageBoard',
+    method: 'post',
+    data: data,
+  })
+}
+
+// 每日看板-万里牛今日销售出库数据
+export function saleWarehouseBoard(params) {
+  return request({
+    url: '/saas-subsidiary/saas/subsidiary/contract/saleWarehouseBoard',
+    method: 'get',
+    params: params,
+  })
+}
+
+// 每日看板-mes今日自建订单数据
+export function selfOrderBoard(params) {
+  return request({
+    url: '/saas-subsidiary/saas/subsidiary/contract/selfOrderBoard',
+    method: 'get',
+    params: params,
+  })
+}
+
+// 每日看板-mes今日生产订单数据
+export function productOrderBoard(params) {
+  return request({
+    url: '/saas-production/saas/production/contractextend/productOrderBoard',
+    method: 'get',
+    params: params,
+  })
+}
+
+// 每日看板-mes今日生产&出库差异数据
+export function differenceBoard(params) {
+  return request({
+    url: '/saas-production/saas/production/contractextend/differenceBoard',
+    method: 'get',
+    params: params,
+  })
+}

+ 208 - 146
src/views/shengde/group/spectaculars/dailyBoard/index.vue

@@ -2,14 +2,14 @@
   <div class="box-card">
     <el-row :gutter="10">
       <el-col :span="7">
-        <el-card>
+        <el-card v-loading="topLeft">
           <div class="cardTitle">MES今日生产出库数据</div>
           <div class="firstRowBoard">
-            <span style="font-size: 16px">BOM出库总数(个)</span>
-            <span style="font-weight: 700; font-size: 16px">212</span>
+            <span style="font-size: 16px !important">BOM出库总数(个)</span>
+            <span style="font-weight: 700; font-size: 20px !important">{{ TLData.count }}</span>
           </div>
           <el-table
-            :data="tableOne"
+            :data="TLData.list"
             :cell-style="{ padding: '0' }"
             :row-style="{ height: '50px' }"
             header-row-class-name="tableHeader"
@@ -17,39 +17,42 @@
             style="margin-top: 20px"
           >
             <el-table-column label="序号" align="center" type="index" width="50" />
-            <el-table-column label="BOM编号" min-width="140" />
+            <el-table-column label="BOM编号" prop="colorCode" min-width="140" />
             <el-table-column label="数量" align="center" width="80">
               <template slot-scope="scope">
-                <span v-if="scope.row.num">{{ Number(scope.row.num) }}</span>
+                <span v-if="scope.row.quantity">{{ Number(scope.row.quantity) }}</span>
+                <span v-else>0</span>
               </template>
             </el-table-column>
           </el-table>
         </el-card>
       </el-col>
       <el-col :span="10">
-        <el-card>
+        <el-card v-loading="topCenter">
           <div class="cardTitle">MES&万里牛今日订单和BOM差异(不含自建订单)</div>
           <div class="firstRowBoard">
-            <span style="font-size: 16px">差异订单总数(单)</span>
-            <span style="font-weight: 700; font-size: 16px">212</span>
+            <span style="font-size: 16px !important">差异订单总数(单)</span>
+            <span style="font-weight: 700; font-size: 20px !important">{{ TCData.count }}</span>
           </div>
           <el-table
-            :data="tableTwo"
+            :data="TCData.list"
             :cell-style="{ padding: '0' }"
             :row-style="{ height: '50px' }"
             header-row-class-name="tableHeader"
             height="30vh"
             style="margin-top: 20px"
           >
-            <el-table-column label="BOM编号" width="120" />
+            <el-table-column label="BOM编号" prop="colorCode" width="120" />
             <el-table-column label="MES" align="center" width="80">
               <template slot-scope="scope">
-                <span v-if="scope.row.num">{{ Number(scope.row.num) }}</span>
+                <span v-if="scope.row.quantity">{{ Number(scope.row.quantity) }}</span>
+                <span v-else>0</span>
               </template>
             </el-table-column>
             <el-table-column label="万里牛" align="center" width="80">
               <template slot-scope="scope">
-                <span v-if="scope.row.num">{{ Number(scope.row.num) }}</span>
+                <span v-if="scope.row.quantity">{{ Number(scope.row.quantity) }}</span>
+                <span v-else>0</span>
               </template>
             </el-table-column>
             <el-table-column label="差异订单号" min-width="140" />
@@ -57,14 +60,14 @@
         </el-card>
       </el-col>
       <el-col :span="7">
-        <el-card>
+        <el-card v-loading="topRight">
           <div class="cardTitle">MES今日生产&出库差异</div>
           <div class="firstRowBoard">
-            <span style="font-size: 16px">差异总数(个)</span>
-            <span style="font-weight: 700; font-size: 16px">212</span>
+            <span style="font-size: 16px !important">差异总数(个)</span>
+            <span style="font-weight: 700; font-size: 20px !important">{{ TRData.count }}</span>
           </div>
           <el-table
-            :data="tableThree"
+            :data="TRData.list"
             :cell-style="{ padding: '0' }"
             :row-style="{ height: '50px' }"
             header-row-class-name="tableHeader"
@@ -72,15 +75,17 @@
             style="margin-top: 20px"
           >
             <el-table-column label="序号" align="center" type="index" width="50" />
-            <el-table-column label="BOM编号" min-width="140" />
+            <el-table-column label="BOM编号" prop="bomColorCode" min-width="140" />
             <el-table-column label="今日生产" align="center" width="80">
               <template slot-scope="scope">
-                <span v-if="scope.row.num">{{ Number(scope.row.num) }}</span>
+                <span v-if="scope.row.productCount">{{ Number(scope.row.productCount) }}</span>
+                <span v-else>0</span>
               </template>
             </el-table-column>
             <el-table-column label="出库" align="center" width="80">
               <template slot-scope="scope">
-                <span v-if="scope.row.num">{{ Number(scope.row.num) }}</span>
+                <span v-if="scope.row.comeStockCount">{{ Number(scope.row.comeStockCount) }}</span>
+                <span v-else>0</span>
               </template>
             </el-table-column>
           </el-table>
@@ -89,20 +94,24 @@
     </el-row>
     <el-row :gutter="10" style="padding-top: 10px">
       <el-col :span="12">
-        <el-card>
+        <el-card v-loading="centerLeft">
           <div class="cardTitle">万里牛今日销售出库数据</div>
           <el-row :gutter="20">
             <el-col :span="8">
               <div class="secondRowBoardTop">
                 <div>销售出库订单总数(单)</div>
-                <div style="font-weight: 700; margin-top: 10px">212</div>
+                <div style="font-weight: 700; margin-top: 10px; font-size: 20px !important">
+                  {{ CLData.sumCount }}
+                </div>
               </div>
               <div class="secondRowBoardBottom">
                 <div>BOM销售出库总数(个)</div>
-                <div style="font-weight: 700; margin-top: 10px">212</div>
+                <div style="font-weight: 700; margin-top: 10px; font-size: 20px !important">
+                  {{ CLData.sumData.count }}
+                </div>
               </div>
               <el-table
-                :data="tableFour"
+                :data="CLData.sumData.list"
                 :cell-style="{ padding: '0' }"
                 :row-style="{ height: '50px' }"
                 header-row-class-name="tableHeader"
@@ -110,10 +119,11 @@
                 style="margin-top: 20px"
               >
                 <el-table-column label="序号" align="center" type="index" width="50" />
-                <el-table-column label="BOM编号" min-width="140" />
+                <el-table-column label="BOM编号" prop="colorCode" min-width="140" />
                 <el-table-column label="数量" align="center" width="80">
                   <template slot-scope="scope">
-                    <span v-if="scope.row.num">{{ Number(scope.row.num) }}</span>
+                    <span v-if="scope.row.quantity">{{ Number(scope.row.quantity) }}</span>
+                    <span v-else>0</span>
                   </template>
                 </el-table-column>
               </el-table>
@@ -121,14 +131,18 @@
             <el-col :span="8">
               <div class="secondRowBoardTop">
                 <div>佰卓销售出库订单总数(单)</div>
-                <div style="font-weight: 700; margin-top: 10px">212</div>
+                <div style="font-weight: 700; margin-top: 10px; font-size: 20px !important">
+                  {{ CLData.bzCount }}
+                </div>
               </div>
               <div class="secondRowBoardBottom">
                 <div>佰卓出库BOM总数(个)</div>
-                <div style="font-weight: 700; margin-top: 10px">212</div>
+                <div style="font-weight: 700; margin-top: 10px; font-size: 20px !important">
+                  {{ CLData.bzData.count }}
+                </div>
               </div>
               <el-table
-                :data="tableFive"
+                :data="CLData.bzData.list"
                 :cell-style="{ padding: '0' }"
                 :row-style="{ height: '50px' }"
                 header-row-class-name="tableHeader"
@@ -136,10 +150,11 @@
                 style="margin-top: 20px"
               >
                 <el-table-column label="序号" align="center" type="index" width="50" />
-                <el-table-column label="BOM编号" min-width="140" />
+                <el-table-column label="BOM编号" prop="colorCode" min-width="140" />
                 <el-table-column label="数量" align="center" width="80">
                   <template slot-scope="scope">
-                    <span v-if="scope.row.num">{{ Number(scope.row.num) }}</span>
+                    <span v-if="scope.row.quantity">{{ Number(scope.row.quantity) }}</span>
+                    <span v-else>0</span>
                   </template>
                 </el-table-column>
               </el-table>
@@ -147,14 +162,18 @@
             <el-col :span="8">
               <div class="secondRowBoardTop">
                 <div>宝恒盛销售出库订单总数(单)</div>
-                <div style="font-weight: 700; margin-top: 10px">212</div>
+                <div style="font-weight: 700; margin-top: 10px; font-size: 20px !important">
+                  {{ CLData.bhsCount }}
+                </div>
               </div>
               <div class="secondRowBoardBottom">
                 <div>宝恒盛出库BOM总数(个)</div>
-                <div style="font-weight: 700; margin-top: 10px">212</div>
+                <div style="font-weight: 700; margin-top: 10px; font-size: 20px !important">
+                  {{ CLData.bhsData.count }}
+                </div>
               </div>
               <el-table
-                :data="tableSix"
+                :data="CLData.bhsData.list"
                 :cell-style="{ padding: '0' }"
                 :row-style="{ height: '50px' }"
                 header-row-class-name="tableHeader"
@@ -162,10 +181,11 @@
                 style="margin-top: 20px"
               >
                 <el-table-column label="序号" align="center" type="index" width="50" />
-                <el-table-column label="BOM编号" min-width="140" />
+                <el-table-column label="BOM编号" prop="colorCode" min-width="140" />
                 <el-table-column label="数量" align="center" width="80">
                   <template slot-scope="scope">
-                    <span v-if="scope.row.num">{{ Number(scope.row.num) }}</span>
+                    <span v-if="scope.row.quantity">{{ Number(scope.row.quantity) }}</span>
+                    <span v-else>0</span>
                   </template>
                 </el-table-column>
               </el-table>
@@ -174,20 +194,24 @@
         </el-card>
       </el-col>
       <el-col :span="12">
-        <el-card>
+        <el-card v-loading="centerRight">
           <div class="cardTitle">MES今日生产订单数据(不含自建订单)</div>
           <el-row :gutter="20">
             <el-col :span="8">
               <div class="secondRowBoardTop">
                 <div>生产订单总数(单)</div>
-                <div style="font-weight: 700; margin-top: 10px">212</div>
+                <div style="font-weight: 700; margin-top: 10px; font-size: 20px !important">
+                  {{ CRData.sumCount }}
+                </div>
               </div>
               <div class="secondRowBoardBottom">
                 <div>BOM生产总数(个)</div>
-                <div style="font-weight: 700; margin-top: 10px">212</div>
+                <div style="font-weight: 700; margin-top: 10px; font-size: 20px !important">
+                  {{ CRData.sumBomCount }}
+                </div>
               </div>
               <el-table
-                :data="tableFour"
+                :data="CRData.sumBomList"
                 :cell-style="{ padding: '0' }"
                 :row-style="{ height: '50px' }"
                 header-row-class-name="tableHeader"
@@ -195,10 +219,11 @@
                 style="margin-top: 20px"
               >
                 <el-table-column label="序号" align="center" type="index" width="50" />
-                <el-table-column label="BOM编号" min-width="140" />
+                <el-table-column label="BOM编号" prop="colorCode" min-width="140" />
                 <el-table-column label="数量" align="center" width="80">
                   <template slot-scope="scope">
-                    <span v-if="scope.row.num">{{ Number(scope.row.num) }}</span>
+                    <span v-if="scope.row.quantity">{{ Number(scope.row.quantity) }}</span>
+                    <span v-else>0</span>
                   </template>
                 </el-table-column>
               </el-table>
@@ -206,14 +231,18 @@
             <el-col :span="8">
               <div class="secondRowBoardTop">
                 <div>佰卓生产订单总数(单)</div>
-                <div style="font-weight: 700; margin-top: 10px">212</div>
+                <div style="font-weight: 700; margin-top: 10px; font-size: 20px !important">
+                  {{ CRData.bzCount }}
+                </div>
               </div>
               <div class="secondRowBoardBottom">
                 <div>佰卓生产BOM总数(个)</div>
-                <div style="font-weight: 700; margin-top: 10px">212</div>
+                <div style="font-weight: 700; margin-top: 10px; font-size: 20px !important">
+                  {{ CRData.sumBzBomCount }}
+                </div>
               </div>
               <el-table
-                :data="tableFive"
+                :data="CRData.sumBzBomList"
                 :cell-style="{ padding: '0' }"
                 :row-style="{ height: '50px' }"
                 header-row-class-name="tableHeader"
@@ -221,10 +250,11 @@
                 style="margin-top: 20px"
               >
                 <el-table-column label="序号" align="center" type="index" width="50" />
-                <el-table-column label="BOM编号" min-width="140" />
+                <el-table-column label="BOM编号" prop="colorCode" min-width="140" />
                 <el-table-column label="数量" align="center" width="80">
                   <template slot-scope="scope">
-                    <span v-if="scope.row.num">{{ Number(scope.row.num) }}</span>
+                    <span v-if="scope.row.quantity">{{ Number(scope.row.quantity) }}</span>
+                    <span v-else>0</span>
                   </template>
                 </el-table-column>
               </el-table>
@@ -232,14 +262,18 @@
             <el-col :span="8">
               <div class="secondRowBoardTop">
                 <div>宝恒盛生产订单总数(单)</div>
-                <div style="font-weight: 700; margin-top: 10px">212</div>
+                <div style="font-weight: 700; margin-top: 10px; font-size: 20px !important">
+                  {{ CRData.bhsCount }}
+                </div>
               </div>
               <div class="secondRowBoardBottom">
                 <div>宝恒盛生产BOM总数(个)</div>
-                <div style="font-weight: 700; margin-top: 10px">212</div>
+                <div style="font-weight: 700; margin-top: 10px; font-size: 20px !important">
+                  {{ CRData.sumBhsBomCount }}
+                </div>
               </div>
               <el-table
-                :data="tableSix"
+                :data="CRData.sumBhsBomList"
                 :cell-style="{ padding: '0' }"
                 :row-style="{ height: '50px' }"
                 header-row-class-name="tableHeader"
@@ -247,10 +281,11 @@
                 style="margin-top: 20px"
               >
                 <el-table-column label="序号" align="center" type="index" width="50" />
-                <el-table-column label="BOM编号" min-width="140" />
+                <el-table-column label="BOM编号" prop="colorCode" min-width="140" />
                 <el-table-column label="数量" align="center" width="80">
                   <template slot-scope="scope">
-                    <span v-if="scope.row.num">{{ Number(scope.row.num) }}</span>
+                    <span v-if="scope.row.quantity">{{ Number(scope.row.quantity) }}</span>
+                    <span v-else>0</span>
                   </template>
                 </el-table-column>
               </el-table>
@@ -260,48 +295,30 @@
       </el-col>
     </el-row>
     <div style="padding-top: 10px">
-      <el-card>
+      <el-card v-loading="bottomCenter">
         <div class="cardTitle">MES今日自建订单数据</div>
         <el-row :gutter="20">
           <el-col :span="8">
             <div class="firstRowBoard">
-              <span style="font-size: 16px">自建订单总数(单)</span>
-              <span style="font-weight: 700; font-size: 16px">1</span>
+              <span style="font-size: 16px !important">自建订单总数(单)</span>
+              <span style="font-weight: 700; font-size: 20px !important">{{ BCData.sumCount }}</span>
             </div>
           </el-col>
           <el-col :span="8">
             <div class="firstRowBoard">
-              <span style="font-size: 16px">自建订单BOM总数(个)</span>
-              <span style="font-weight: 700; font-size: 16px">3</span>
+              <span style="font-size: 16px !important">自建订单BOM总数(个)</span>
+              <span style="font-weight: 700; font-size: 20px !important">{{ BCData.selfBomCount }}</span>
             </div>
           </el-col>
         </el-row>
-        <el-row :gutter="20" style="margin-top: 20px">
-          <el-col :span="8">
-            <el-row :gutter="2">
-              <el-col :span="8">
-                <div style="background-color: #eeeeee; padding: 20px">BOM编号</div>
-              </el-col>
-              <el-col :span="16">
-                <div style="background-color: #eeeeee; padding: 20px">204010400078</div>
-              </el-col>
-            </el-row>
-            <el-row :gutter="2" style="margin-top: 2px">
-              <el-col :span="8">
-                <div style="background-color: #eeeeee; padding: 20px">数量</div>
-              </el-col>
-              <el-col :span="16">
-                <div style="background-color: #eeeeee; padding: 20px">50</div>
-              </el-col>
-            </el-row>
-          </el-col>
-          <el-col :span="8">
+        <el-row :gutter="20" v-if="BCData.selfBomData && BCData.selfBomData.length > 0">
+          <el-col :span="8" style="margin-top: 20px" v-for="(item, index) in BCData.selfBomData" :key="index">
             <el-row :gutter="2">
               <el-col :span="8">
                 <div style="background-color: #eeeeee; padding: 20px">BOM编号</div>
               </el-col>
               <el-col :span="16">
-                <div style="background-color: #eeeeee; padding: 20px">204010400078</div>
+                <div style="background-color: #eeeeee; padding: 20px">{{ item.bomColorCode }}</div>
               </el-col>
             </el-row>
             <el-row :gutter="2" style="margin-top: 2px">
@@ -309,25 +326,7 @@
                 <div style="background-color: #eeeeee; padding: 20px">数量</div>
               </el-col>
               <el-col :span="16">
-                <div style="background-color: #eeeeee; padding: 20px">50</div>
-              </el-col>
-            </el-row>
-          </el-col>
-          <el-col :span="8">
-            <el-row :gutter="2">
-              <el-col :span="8">
-                <div style="background-color: #eeeeee; padding: 20px">BOM编号</div>
-              </el-col>
-              <el-col :span="16">
-                <div style="background-color: #eeeeee; padding: 20px">204010400078</div>
-              </el-col>
-            </el-row>
-            <el-row :gutter="2" style="margin-top: 2px">
-              <el-col :span="8">
-                <div style="background-color: #eeeeee; padding: 20px">数量</div>
-              </el-col>
-              <el-col :span="16">
-                <div style="background-color: #eeeeee; padding: 20px">50</div>
+                <div style="background-color: #eeeeee; padding: 20px">{{ item.bomColorCount }}</div>
               </el-col>
             </el-row>
           </el-col>
@@ -338,64 +337,127 @@
 </template>
 
 <script>
-// import * as API from '@/api/shengde/group/spectaculars/purchaseSaleStock'
-import { mapGetters } from 'vuex'
-// import $ from 'jquery'
+import * as API from '@/api/shengde/group/spectaculars/dailyBoard'
 
 export default {
   name: 'dailyBoard',
   data() {
     return {
-      tableOne: [{}],
-      tableTwo: [{}],
-      tableThree: [{}],
-      tableFour: [{}],
-      tableFive: [{}],
-      tableSix: [{}],
-      tableSeven: [{}],
-      tableEight: [{}],
-      tableNine: [{}],
-      // queryParams: {
-      //   pageNum: 1,
-      //   pageSize: 10,
-      //   strTime: '',
-      //   endTime: '',
-      //   projectType: '',
-      //   type: null,
-      // },
+      topLeft: false,
+      topCenter: false,
+      topRight: false,
+      centerLeft: false,
+      centerRight: false,
+      bottomCenter: false,
+      TLData: {
+        count: 0,
+        list: [],
+      },
+      TCData: {
+        count: 0,
+        list: [],
+      },
+      TRData: {
+        count: 0,
+        list: [],
+      },
+      CLData: {
+        sumCount: 0,
+        sumData: {
+          count: 0,
+          list: [],
+        },
+        bzCount: 0,
+        bzData: {
+          count: 0,
+          list: [],
+        },
+        bhsCount: 0,
+        bhsData: {
+          count: 0,
+          list: [],
+        },
+      },
+      CRData: {
+        sumCount: 0,
+        sumBomCount: 0,
+        sumBomList: [],
+        bzCount: 0,
+        sumBzBomCount: 0,
+        sumBzBomList: [],
+        bhsCount: 0,
+        sumBhsBomCount: 0,
+        sumBhsBomList: [],
+      },
+      BCData: {
+        sumCount: 0,
+        selfBomCount: 0,
+        selfBomData: [],
+      },
     }
   },
   created() {},
-  mounted() {},
-  computed: mapGetters(['dictData']),
+  mounted() {
+    this.getList()
+  },
   methods: {
-    // getList() {
-    //   if (!this.queryParams.type && this.queryParams.type !== 0) {
-    //     this.queryParams.type = null
-    //   }
-    //   this.loadingDanger = true
-    //   API.hazardStockStatement(this.queryParams).then(
-    //     (res) => {
-    //       this.hazardStockStatement = res.data.data.hazardStockStatement
-    //       this.loadingDanger = false
-    //     },
-    //     (err) => {
-    //       console.log('hazardStockStatement: ' + err)
-    //       this.loadingDanger = false
-    //     }
-    //   )
-    //   this.loadingMaterial = true
-    //   API.passageStatement(this.queryParams).then(
-    //     (res) => {
-    //       this.passageStatement = res.data.data.passageStatement
-    //       this.loadingMaterial = false
-    //     },
-    //     (err) => {
-    //       console.log('passageStatement: ' + err)
-    //       this.loadingMaterial = false
-    //     }
-    //   )
-    // },
+    getList() {
+      this.topLeft = true
+      API.productionStorageBoard({ type: 1, subsidiaryIds: '' }).then(
+        (res) => {
+          this.TLData = res.data.data
+          this.topLeft = false
+        },
+        (err) => {
+          console.log('productionStorageBoard: ' + err)
+          this.topLeft = false
+        }
+      )
+      this.topRight = true
+      API.differenceBoard().then(
+        (res) => {
+          this.TRData = res.data.data
+          this.topRight = false
+        },
+        (err) => {
+          console.log('differenceBoard: ' + err)
+          this.topRight = false
+        }
+      )
+      this.centerLeft = true
+      API.saleWarehouseBoard().then(
+        (res) => {
+          this.CLData = res.data.data
+          this.centerLeft = false
+        },
+        (err) => {
+          console.log('saleWarehouseBoard: ' + err)
+          this.centerLeft = false
+        }
+      )
+      this.centerRight = true
+      API.productOrderBoard().then(
+        (res) => {
+          this.CRData = res.data.data
+          this.centerRight = false
+        },
+        (err) => {
+          console.log('productOrderBoard: ' + err)
+          this.centerRight = false
+        }
+      )
+      this.bottomCenter = true
+      API.selfOrderBoard().then(
+        (res) => {
+          this.BCData = res.data.data
+          this.bottomCenter = false
+        },
+        (err) => {
+          console.log('selfOrderBoard: ' + err)
+          this.bottomCenter = false
+        }
+      )
+    },
   },
 }
 </script>