From 6909c00e1010683bbdfa6237c1bebafcfa28fb9d Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期六, 25 二月 2023 13:53:51 +0800
Subject: [PATCH] 1.质检方案  静态实现50%

---
 src/views/bbgl/rygz.vue |  563 ++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 401 insertions(+), 162 deletions(-)

diff --git a/src/views/bbgl/rygz.vue b/src/views/bbgl/rygz.vue
index d14b06b..79a8ad6 100644
--- a/src/views/bbgl/rygz.vue
+++ b/src/views/bbgl/rygz.vue
@@ -2,19 +2,19 @@
   <div>
     <div class="body" :style="{height:mainHeight+'px'}">
       <div class="bodyTopButtonGroup">
-        <el-button type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+        <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
       </div>
 
       <div class="bodyTopFormGroup">
         <el-form
           ref="form"
           :model="form"
-          label-width="80px"
+          label-width="100px"
           inline
-          style="display: flex;justify-content: space-between"
+          style="display: flex; "
         >
           <div class="elForm">
-            <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+            <el-form-item label="宸ュ崟缂栧彿" style="display: flex;">
               <el-input v-model="form.wocode" placeholder="璇疯緭鍏�" style="width: 200px" />
             </el-form-item>
             <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
@@ -26,7 +26,7 @@
             <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">
               <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />
             </el-form-item>
-            <el-form-item label="宸ュ簭鍚嶇О" style=" display: flex;">
+            <el-form-item v-show="isExpandForm" label="宸ュ簭鍚嶇О" style=" display: flex;">
               <el-input v-model="form.stepname" style="width: 200px" placeholder="璇疯緭鍏�" />
             </el-form-item>
             <el-form-item v-show="isExpandForm" label="鐢熶骇鐝粍" style=" display: flex;">
@@ -59,164 +59,344 @@
 
             </el-form-item>
           </div>
-          <div class="bodySearchReset">
-            <el-button type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
-            <el-button type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+          <div
+            class="bodySearchReset"
+            :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+          >
+            <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+            <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
           </div>
         </el-form>
-      </div>
-
-      <div
-        class="bodyTopFormExpand"
-        @click="isExpandForm=!isExpandForm"
-      >
-        <i
-          :class="!isExpandForm?'el-icon-arrow-down':'el-icon-arrow-up'"
-          :style="{color:'#42B983'}"
-        /></div>
-
-      <div class="elTableDiv" style="margin-top: 0">
-        <el-table
-          ref="tableDataRef"
-          class="tableFixed"
-          :data="tableData"
-          :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
-          border
-          :row-class-name="tableRowClassName"
-          :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
-          highlight-current-row
-          :header-cell-style="this.$headerCellStyle"
-          :cell-style="this.$cellStyle"
-          @sort-change="sortChange"
+        <div
+          class="bodyTopFormExpand"
         >
-          <el-table-column
-            prop="RowNum"
-            width="50"
-            fixed
-            label="搴忓彿"
+          <svg-icon
+            v-show="mouseHoverType==='mouseout'"
+            style="cursor: pointer"
+            :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+            @mouseenter="mouseHoverType=$event.type"
           />
-          <el-table-column
-            prop="wo_code"
-            label="宸ュ崟缂栧彿"
-            width="160"
-            sortable="custom"
+          <svg-icon
+            v-show="mouseHoverType==='mouseenter'"
+            style="cursor: pointer"
+            :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+            @click="isExpandForm=!isExpandForm"
+            @mouseout="mouseHoverType=$event.type"
           />
-          <el-table-column
-            prop="partcode"
-            label="浜у搧缂栫爜"
-            width="160"
-            show-tooltip-when-overflow
-            sortable="custom"
-          />
-          <el-table-column
-            prop="partname"
-            label="浜у搧鍚嶇О"
-            width="160"
-            show-tooltip-when-overflow
-            sortable="custom"
-          />
-          <el-table-column
-            prop="partspec"
-            label="浜у搧瑙勬牸"
-            width="160"
-            show-tooltip-when-overflow
-            sortable="custom"
-          >
-            <template slot-scope="{row}">
-              <div v-if="row.partspec">{{ row.partspec }}</div>
-              <div v-else>/</div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="stepcode"
-            label="宸ュ簭缂栫爜"
-            width="110"
-            show-tooltip-when-overflow
-            sortable="custom"
-          />
-          <el-table-column
-            prop="stepname"
-            label="宸ュ簭鍚嶇О"
-            width="110"
-            show-tooltip-when-overflow
-            sortable="custom"
-          />
-          <el-table-column
-            prop="task_qty"
-            label="浠诲姟鏁伴噺"
-            width="110"
-            show-tooltip-when-overflow
-            sortable="custom"
-          />
-          <el-table-column
-            prop="group_name"
-            label="鐢熶骇鐝粍"
-            width="110"
-            show-tooltip-when-overflow
-            sortable="custom"
-          />
-          <el-table-column
-            prop="good_qty"
-            label="鎶ュ伐鏁伴噺"
-            width="110"
-            sortable="custom"
-          >
-            <template slot-scope="{row}">
-              <div v-if="row.good_qty">{{ row.good_qty }}</div>
-              <div v-else>/</div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="unprice"
-            label="宸ュ簭鍗曚环"
-            width="110"
-            sortable="custom"
-          >
-            <template slot-scope="{row}">
-              <div v-if="row.unprice">{{ row.unprice }}鍏�</div>
-              <div v-else>/</div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="usermoney"
-            label="鐝粍璁颁欢宸ヨ祫"
-            width="130"
-            sortable="custom"
-          >
-            <template slot-scope="{row}">
-              <div v-if="row.usermoney">{{ row.usermoney }}鍏�</div>
-              <div v-else>/</div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="lm_user"
-            label="鎶ュ伐浜哄憳"
-            width="110"
-            sortable="custom"
-          />
-          <el-table-column
-            prop="report_date"
-            label="鎶ュ伐鏃堕棿"
-            width="160"
-            sortable="custom"
-            fixed="right"
-          />
-
-        </el-table>
+        </div>
       </div>
-      <!--鍒嗛〉-->
-      <pagination
-        :total="total"
-        :page.sync="form.page"
-        :limit.sync="form.rows"
-        align="right"
-        layout="total,prev, pager, next,sizes"
-        popper-class="select_bottom"
-        @pagination="getPeopleSalaryReportSearch"
-      />
+
+      <el-tabs type="border-card" style="margin-top: 10px" @tab-click="tabClick">
+        <el-tab-pane label="鏈亾宸ュ簭">
+          <div class="elTableDiv" style="margin: 0 auto 10px;">
+            <el-table
+              ref="tableDataRef"
+              class="tableFixed"
+              :data="tableData"
+              :height="isExpandForm?(tableHeight-80):(tableHeight-40)+'px'"
+              border
+              :summary-method="getSummaries"
+              show-summary
+              :row-class-name="tableRowClassName"
+              :style="{width: 100+'%',height:isExpandForm?(tableHeight-80):(tableHeight-40)+'px',}"
+              highlight-current-row
+              :header-cell-style="this.$headerCellStyle"
+              :cell-style="this.$cellStyle"
+              @sort-change="sortChange"
+            >
+              <el-table-column
+                prop="RowNum"
+                width="50"
+                fixed
+                label="搴忓彿"
+              />
+              <el-table-column
+                prop="wo_code"
+                label="宸ュ崟缂栧彿"
+                width="160"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="partcode"
+                label="浜у搧缂栫爜"
+                width="160"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+              <el-table-column
+                prop="partname"
+                label="浜у搧鍚嶇О"
+                width="160"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+              <el-table-column
+                prop="partspec"
+                label="浜у搧瑙勬牸"
+                width="160"
+                show-tooltip-when-overflow
+                sortable="custom"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.partspec">{{ row.partspec }}</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="stepcode"
+                label="宸ュ簭缂栫爜"
+                width="110"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+              <el-table-column
+                prop="stepname"
+                label="宸ュ簭鍚嶇О"
+                width="110"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+              <el-table-column
+                prop="task_qty"
+                label="浠诲姟鏁伴噺"
+                width="110"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+              <el-table-column
+                prop="group_name"
+                label="鐢熶骇鐝粍"
+                width="110"
+                show-tooltip-when-overflow
+                sortable="custom"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.group_name">{{ row.group_name }}</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="report_qty"
+                label="鎶ュ伐鏁伴噺"
+                width="110"
+                sortable="custom"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.report_qty">{{ row.report_qty }}</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="unprice"
+                label="宸ュ簭鍗曚环"
+                width="110"
+                sortable="custom"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.unprice">{{ row.unprice }} 鍏�</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="ratio"
+                label="宸ュ簭鍗曚环"
+                width="110"
+                sortable="custom"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.unprice">{{ row.ratio }} %</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="usermoney"
+                label="涓汉璁颁欢宸ヨ祫"
+                width="130"
+                sortable="custom"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.usermoney">{{ row.usermoney }} 鍏�</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="username"
+                label="鎶ュ伐浜哄憳"
+                width="110"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="report_date"
+                label="鎶ュ伐鏃堕棿"
+                width="160"
+                sortable="custom"
+              />
+
+            </el-table>
+          </div>
+          <!--鍒嗛〉-->
+          <pagination
+            :total="total"
+            :page.sync="form.page"
+            :limit.sync="form.rows"
+            align="right"
+            layout="total,prev, pager, next,sizes"
+            popper-class="select_bottom"
+            @pagination="getPeopleSalaryReportSearch"
+          />
+        </el-tab-pane>
+        <el-tab-pane label="閫愰亾宸ュ簭">
+          <div class="elTableDiv" style="margin: 0 auto 10px;">
+            <el-table
+              ref="tableDataRef2"
+              class="tableFixed"
+              :data="tableData2"
+              :height="isExpandForm?(tableHeight-80):(tableHeight-40)+'px'"
+              border
+              :summary-method="getSummaries"
+              show-summary
+              :row-class-name="tableRowClassName"
+              :style="{width: 100+'%',height:isExpandForm?(tableHeight-80):(tableHeight-40)+'px',}"
+              highlight-current-row
+              :header-cell-style="this.$headerCellStyle"
+              :cell-style="this.$cellStyle"
+              @sort-change="sortChange"
+            >
+              <el-table-column
+                prop="RowNum"
+                width="50"
+                fixed
+                label="搴忓彿"
+              />
+              <el-table-column
+                prop="wo_code"
+                label="宸ュ崟缂栧彿"
+                width="160"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="partcode"
+                label="浜у搧缂栫爜"
+                width="160"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+              <el-table-column
+                prop="partname"
+                label="浜у搧鍚嶇О"
+                width="160"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+              <el-table-column
+                prop="partspec"
+                label="浜у搧瑙勬牸"
+                width="160"
+                show-tooltip-when-overflow
+                sortable="custom"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.partspec">{{ row.partspec }}</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="stepcode"
+                label="宸ュ簭缂栫爜"
+                width="110"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+              <el-table-column
+                prop="stepname"
+                label="宸ュ簭鍚嶇О"
+                width="110"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+              <el-table-column
+                prop="task_qty"
+                label="浠诲姟鏁伴噺"
+                width="110"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+              <el-table-column
+                prop="group_name"
+                label="鐢熶骇鐝粍"
+                width="110"
+                show-tooltip-when-overflow
+                sortable="custom"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.group_name">{{ row.group_name }}</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="report_qty"
+                label="鎶ュ伐鏁伴噺"
+                width="110"
+                sortable="custom"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.report_qty">{{ row.report_qty }}</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="unprice"
+                label="宸ュ簭鍗曚环"
+                width="110"
+                sortable="custom"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.unprice">{{ row.unprice }} 鍏�</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="usermoney"
+                label="涓汉璁颁欢宸ヨ祫"
+                width="130"
+                sortable="custom"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.usermoney">{{ row.usermoney }} 鍏�</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="username"
+                label="鎶ュ伐浜哄憳"
+                width="110"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="report_date"
+                label="鎶ュ伐鏃堕棿"
+                width="160"
+                sortable="custom"
+              />
+
+            </el-table>
+          </div>
+          <!--鍒嗛〉-->
+          <pagination
+            :total="total"
+            :page.sync="form.page"
+            :limit.sync="form.rows"
+            align="right"
+            layout="total,prev, pager, next,sizes"
+            popper-class="select_bottom"
+            @pagination="getPeopleSalaryReportSearch"
+          />
+        </el-tab-pane>
+      </el-tabs>
     </div>
 
     <el-dialog
+      v-el-drag-dialog
       :title="operation==='add'?'鏂板':'浜哄憳鏄庣粏'"
       :visible.sync="dialogVisible"
       width="800px"
@@ -237,9 +417,9 @@
       </div>
       <span slot="footer" class="dialog-footer">
         <div class="footerButton">
-          <el-button @click="dialogVisible=false">杩� 鍥�</el-button>
-          <!--          <el-button @click="dialogVisibleCancel">鍙� 娑�</el-button>-->
-          <!--          <el-button type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+          <el-button v-waves @click="dialogVisible=false">杩� 鍥�</el-button>
+          <!--          <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>-->
+          <!--          <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
         </div>
       </span>
     </el-dialog>
@@ -266,14 +446,18 @@
   GroupSalaryReportSearchUser, PeopleSalaryReportExcelSearch, PeopleSalaryReportSearch
 } from '@/api/bbgl'
 import { MesOrderStepReportSelectUserGroup } from '@/api/scgl'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
 
 export default {
   name: 'Zzjg',
   components: {
     Pagination, ImportPicker
   },
+  directives: { elDragDialog, waves },
   data() {
     return {
+      mouseHoverType: 'mouseout',
       isExpandForm: false,
       mainHeight: 0,
       tableHeight: 0,
@@ -286,6 +470,7 @@
         groupcode: '', // 鐢熶骇鐝粍
         reportname: '', // 鎿嶄綔浜哄憳
         reportdate: '', // 鎿嶄綔鏃堕棿
+        compute: 'last', // 璁′欢鏂瑰紡
         prop: 'partcode', // 鎺掑簭瀛楁
         order: 'desc', // 鎺掑簭瀛楁
         page: 1, // 绗嚑椤�
@@ -294,6 +479,7 @@
       groupArr: [],
       total: 10,
       tableData: [],
+      tableData2: [],
       dialogVisible: false,
       tagArr: [], //
       dialogForm: {
@@ -329,6 +515,12 @@
       }
     }
   },
+  // updated() {
+  //   this.$nextTick(() => {
+  //     this.$refs.tableDataRef.doLayout()
+  //     this.$refs.tableDataRef2.doLayout()
+  //   })
+  // },
   created() {
     this.handleRequest()
   },
@@ -344,6 +536,40 @@
         }
       })
     },
+    getSummaries(param) {
+      const { columns, data } = param
+      const sums = []
+
+      columns.forEach((column, index) => {
+        if (index === 10) {
+          sums[index] = '鎬讳环'
+          return
+        }
+        const values = data.map(item => Number(item[column.property]))
+        if (column.property === 'usermoney') {
+          sums[index] = values.reduce((prev, curr) => {
+            const value = Number(curr)
+            if (!isNaN(value)) {
+              return prev + curr
+            } else {
+              return prev
+            }
+          }, 0)
+
+          sums[index] += ' 鍏�'
+        } else {
+          // sums[index] = 'N/A'
+          sums[index] = ' '
+        }
+      })
+
+      this.$nextTick(() => {
+        this.$refs.tableDataRef.doLayout()
+        this.$refs.tableDataRef2.doLayout()
+      })
+
+      return sums
+    },
     async getPeopleSalaryReportSearch() {
       let tempDate = this.form.reportdate
       if (tempDate.length > 0) {
@@ -356,6 +582,7 @@
         partspec: this.form.partspec,
         stepname: this.form.stepname,
         groupcode: this.form.groupcode,
+        compute: this.form.compute,
         reportname: this.form.reportname,
         reportdate: tempDate,
         prop: this.form.prop,
@@ -366,7 +593,12 @@
       }
 
       const res = await PeopleSalaryReportSearch(data)
-      this.tableData = res.data
+      if (this.form.compute === 'last') {
+        this.tableData = res.data
+      }
+      if (this.form.compute === 'contin') {
+        this.tableData2 = res.data
+      }
       this.total = res.count
 
       return { code: res.code }
@@ -375,6 +607,10 @@
     async getMesOrderStepReportSelectUserGroup() {
       const { data: res } = await MesOrderStepReportSelectUserGroup()
       this.groupArr = res
+    },
+    tabClick(val) {
+      this.form.compute = val.label === '鏈亾宸ュ簭' ? 'last' : 'contin'
+      this.getPeopleSalaryReportSearch()
     },
     // 鎺掑簭鏀瑰彉鏃�
     sortChange({ column, prop, order }) {
@@ -402,6 +638,7 @@
         partspec: this.form.partspec,
         stepname: this.form.stepname,
         groupcode: this.form.groupcode,
+        compute: this.form.compute,
         reportname: this.form.reportname,
         reportdate: tempDate
       }
@@ -511,8 +748,9 @@
     getHeight() {
       this.$nextTick(() => {
         this.mainHeight = window.innerHeight - 85
-        this.tableHeight = this.mainHeight - 245
+        this.tableHeight = this.mainHeight - 255
         this.$refs.tableDataRef.doLayout()
+        this.$refs.tableDataRef2.doLayout()
       })
     },
     tableRowClassName({ row, rowIndex }) {
@@ -643,11 +881,12 @@
   justify-content: center;
 }
 
-.tableFixed{
-  ::v-deep .el-table__fixed-right{
+.tableFixed {
+  ::v-deep .el-table__fixed-right {
     height: 100% !important;
   }
-  ::v-deep .el-table__fixed{
+
+  ::v-deep .el-table__fixed {
     height: 100% !important;
   }
 }

--
Gitblit v1.9.3