From 15269f028f3616176449a0d44103ac7649054b82 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期六, 07 十月 2023 17:15:02 +0800
Subject: [PATCH] 1.报工调整40%

---
 src/api/WorkOrder.js                   |   36 ++++
 src/views/workOrder/workOrderClose.vue |    4 
 src/views/produce/reportCorrect.vue    |  434 +++++++++++++++++++++++++++++++++++++++++++++++
 src/views/produce/stepReport.vue       |   36 ++-
 4 files changed, 493 insertions(+), 17 deletions(-)

diff --git a/src/api/WorkOrder.js b/src/api/WorkOrder.js
index bb3178b..d7920c0 100644
--- a/src/api/WorkOrder.js
+++ b/src/api/WorkOrder.js
@@ -116,6 +116,7 @@
     data
   })
 }
+
 // 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(鑷埗)
 export function MesOrderStepSearch(data) {
   return request({
@@ -124,6 +125,7 @@
     params: data
   })
 }
+
 // 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(澶栧崗)
 export function MesOrderWxStepSearch(data) {
   return request({
@@ -132,6 +134,7 @@
     params: data
   })
 }
+
 // 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇)
 export function MesOrderNgStepSearch(data) {
   return request({
@@ -140,6 +143,7 @@
     params: data
   })
 }
+
 // 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇鏄庣粏)
 export function MesOrderNgSubStepSearch(data) {
   return request({
@@ -148,6 +152,7 @@
     params: data
   })
 }
+
 // 鐢熶骇寮�鎶ュ伐锛氭姤宸�/澶栧崗(鍙戞枡/鏀舵枡)鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛
 export function MesOrderStepStart(data) {
   return request({
@@ -156,6 +161,7 @@
     params: data
   })
 }
+
 // 鐢熶骇寮�鎶ュ伐,鎶ュ伐鎻愪氦
 export function SavaMesOrderStepReport(data) {
   return request({
@@ -164,6 +170,7 @@
     data
   })
 }
+
 // 鐢熶骇寮�鎶ュ伐,鍙戞枡鎻愪氦
 export function SavaMesOrderStepOut(data) {
   return request({
@@ -172,6 +179,7 @@
     data
   })
 }
+
 // 鐢熶骇寮�鎶ュ伐,鏀舵枡鎻愪氦
 export function SavaMesOrderStepIn(data) {
   return request({
@@ -180,6 +188,7 @@
     data
   })
 }
+
 // 涓嶈壇澶勭悊,鎻愪氦
 export function EditOrderNgStepSeave(data) {
   return request({
@@ -188,3 +197,30 @@
     data
   })
 }
+
+// 鐢熶骇鎵ц,鎶ュ伐璋冩暣鍒楄〃鏁版嵁鏌ヨ鎺ュ彛
+export function MesOrderStepVerifySearch(data) {
+  return request({
+    url: 'WorkOrder/MesOrderStepVerifySearch',
+    method: 'get',
+    params: data
+  })
+}
+
+// 鐢熶骇鎵ц,鎶ュ伐璋冩暣鑾峰彇閫夊畾鎶ュ伐璁板綍鐨勪笉鑹暟鎹�
+export function MesOrderStepModelSearch(data) {
+  return request({
+    url: 'WorkOrder/MesOrderStepModelSearch',
+    method: 'get',
+    params: data
+  })
+}
+
+// 鐢熶骇鎵ц,鎶ュ伐璋冩暣鏁版嵁鎻愪氦
+export function MesOrderStepUpdateSeave(data) {
+  return request({
+    url: 'WorkOrder/MesOrderStepUpdateSeave',
+    method: 'post',
+    data
+  })
+}
diff --git a/src/views/produce/reportCorrect.vue b/src/views/produce/reportCorrect.vue
index 1e5626a..1b59bf1 100644
--- a/src/views/produce/reportCorrect.vue
+++ b/src/views/produce/reportCorrect.vue
@@ -1,11 +1,439 @@
-<template />
+<template>
+  <div>
+    <div class="body" :style="{height:mainHeight+'px'}">
+
+      <div class="bodyTopFormGroup" style="margin-top: 10px;">
+        <el-form
+          ref="form"
+          :model="form"
+          label-width="100px"
+          inline
+          style="display: flex;"
+        >
+          <div class="elForm">
+            <el-form-item label="宸ュ崟缂栫爜" style=" display: flex;">
+              <el-input v-model="form.wo_code" placeholder="璇疯緭鍏�" style="width: 200px" />
+            </el-form-item>
+            <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+              <el-input v-model="form.partnumber" placeholder="璇疯緭鍏�" style="width: 200px" />
+            </el-form-item>
+            <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
+              <el-input v-model="form.partname" placeholder="璇疯緭鍏�" style="width: 200px" />
+            </el-form-item>
+            <el-form-item label="浜у搧瑙勬牸" style=" display: flex;">
+              <el-input v-model="form.partspec" placeholder="璇疯緭鍏�" style="width: 200px" />
+            </el-form-item>
+
+            <el-form-item v-show="isExpandForm" label="鎶ュ伐浜哄憳" style=" display: flex;">
+              <el-input v-model="form.reportuser" placeholder="璇疯緭鍏�" style="width: 200px" />
+            </el-form-item>
+            <el-form-item v-show="isExpandForm" label="鎶ュ伐鏃堕棿" style=" display: flex;">
+              <el-input v-model="form.reportdate" placeholder="璇疯緭鍏�" style="width: 200px" />
+            </el-form-item>
+
+          </div>
+          <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="getMesOrderStepVerifySearch">鏌ヨ</el-button>
+            <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+          </div>
+        </el-form>
+        <div
+          class="bodyTopFormExpand"
+        >
+          <svg-icon
+            v-show="mouseHoverType==='mouseout'"
+            style="cursor: pointer"
+            :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+            @mouseenter="mouseHoverType=$event.type"
+          />
+          <svg-icon
+            v-show="mouseHoverType==='mouseenter'"
+            style="cursor: pointer"
+            :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+            @click="isExpandForm=!isExpandForm"
+            @mouseout="mouseHoverType=$event.type"
+          />
+        </div>
+      </div>
+
+      <div class="elTableDiv">
+        <el-table
+          ref="tableDataRef"
+          class="tableFixed"
+          :data="tableData"
+          :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+          border
+          row-class-name="custom-row"
+          :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+          highlight-current-row
+
+          :header-cell-style="this.$headerCellStyle"
+          :cell-style="this.$cellStyle"
+          @sort-change="sortChange"
+        >
+          <!--          :row-key="getRowKey"-->
+          <!--          <el-table-column-->
+          <!--            type="selection"-->
+          <!--            width="50"-->
+          <!--            :reserve-selection="true"-->
+          <!--            fixed-->
+          <!--          />-->
+          <el-table-column
+            prop="rowNum"
+            width="50"
+            fixed
+            label="搴忓彿"
+          />
+          <el-table-column
+            prop="wo_code"
+            label="鎶ュ伐宸ュ崟"
+            sortable="custom"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            prop="partnumber"
+            label="浜у搧缂栫爜"
+            show-overflow-tooltip
+            sortable="custom"
+            min-width="110"
+          />
+          <el-table-column
+            prop="partname"
+            label="浜у搧鍚嶇О"
+            sortable="custom"
+            show-overflow-tooltip
+            min-width="110"
+          />
+          <el-table-column
+            prop="task_qty"
+            label="浠诲姟鏁伴噺"
+            sortable="custom"
+            show-overflow-tooltip
+            min-width="110"
+          />
+          <el-table-column
+            prop="wkshp_name"
+            label="杞﹂棿鍚嶇О"
+            show-overflow-tooltip
+            sortable="custom"
+            min-width="110"
+          />
+          <el-table-column
+            prop="eqp_name"
+            label="璁惧鍚嶇О"
+            sortable="custom"
+            show-overflow-tooltip
+            min-width="110"
+          />
+          <el-table-column
+            prop="stepname"
+            label="宸ュ簭鍚嶇О"
+            show-overflow-tooltip
+            sortable="custom"
+            min-width="110"
+          />
+          <el-table-column
+            prop="step_price"
+            label="宸ュ簭鍗曚环"
+            show-overflow-tooltip
+            sortable="custom"
+            min-width="110"
+          />
+          <el-table-column
+            prop="usergroup_name"
+            label="鎶ュ伐鐝粍"
+            show-overflow-tooltip
+            min-width="110"
+            sortable="custom"
+          >
+            <template slot-scope="{row}">
+              {{ row.usergroup_name ? row.usergroup_name : '/' }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="username"
+            label="鎶ュ伐浜哄憳"
+            show-overflow-tooltip
+            min-width="110"
+            sortable="custom"
+          />
+          <el-table-column
+            prop="report_qty"
+            label="鍚堟牸鏁伴噺"
+            show-overflow-tooltip
+            sortable="custom"
+            min-width="110"
+          />
+          <el-table-column
+            prop="ng_qty"
+            label="涓嶈壇鏁伴噺"
+            show-overflow-tooltip
+            min-width="110"
+            sortable="custom"
+          />
+          <el-table-column
+            prop="laborbad_qty"
+            label="宸ュ簾鏁伴噺"
+            min-width="110"
+            show-overflow-tooltip
+            sortable="custom"
+          />
+          <el-table-column
+            prop="materielbad_qty"
+            label="鏂欏簾鏁伴噺"
+            show-overflow-tooltip
+            min-width="110"
+            sortable="custom"
+          />
+          <el-table-column
+            prop="report_date"
+            label="鎶ュ伐鏃堕棿"
+            min-width="160"
+            show-overflow-tooltip
+            sortable="custom"
+          />
+          <el-table-column
+            label="鎿嶄綔"
+            width="100"
+            fixed="right"
+          >
+            <template slot-scope="{row}">
+              <div class="operationClass">
+                <el-button
+                  type="text"
+                  style="cursor: pointer;font-size: 14px"
+                  @click="reportAdjust(row)"
+                >鎶ュ伐璋冩暣
+                </el-button>
+
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <!--鍒嗛〉-->
+      <pagination
+        :total="total"
+        :page.sync="form.page"
+        :limit.sync="form.rows"
+        align="right"
+        layout="total,prev, pager, next,sizes,jumper"
+        popper-class="select_bottom"
+        @pagination="getMesOrderStepVerifySearch"
+      />
+    </div>
+
+    <el-dialog
+      v-el-drag-dialog
+      title="鎶ュ伐璋冩暣"
+      :visible.sync="dialogVisible"
+      width="800px"
+      :close-on-click-modal="false"
+      top="15vh"
+      @closed="handleClose"
+      @close="handleClose"
+    >
+      <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+        <el-divider content-position="left">宸ュ崟淇℃伅</el-divider>
+
+        <el-form-item label="宸ュ崟缂栧彿">
+          <el-input v-model="dialogForm.postcode" style="width: 200px" />
+        </el-form-item>
+        <el-form-item label="" prop="postname">
+          <el-input v-model="dialogForm.postname" style="width: 200px" />
+        </el-form-item>
+        <el-form-item label="鎻忚堪">
+          <el-input
+            v-model="dialogForm.description"
+            type="textarea"
+            style="width: 200px"
+          />
+        </el-form-item>
+        <el-form-item required label="宀椾綅鐘舵��">
+          <el-radio-group v-model="dialogForm.status">
+            <el-radio label="Y">姝e父</el-radio>
+            <el-radio label="N">鍋滅敤</el-radio>
+          </el-radio-group>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <div class="footerButton">
+          <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+          <el-button
+            v-waves
+            type="primary"
+            :loading="$store.state.app.buttonIsDisabled"
+            :disabled="$store.state.app.buttonIsDisabled"
+            @click="dialogVisibleConfirm"
+          >纭� 瀹�</el-button>
+        </div>
+      </span>
+    </el-dialog>
+
+  </div>
+</template>
 
 <script>
+import Pagination from '@/components/Pagination'
+import {
+  AddUpdatePost, RoleAssignedUserBatchAdd,
+  RoleAssignedUserBatchCancel,
+  RoleAssignedUserData
+
+} from '@/api/basicSettings'
+import { handleDatetime, validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import arrayToTree from 'array-to-tree'
+import { GroupsPermissions, PostPermissions, PrentOrganization, RolePermissions } from '@/api/GeneralBasicData'
+import { MesOrderStepModelSearch, MesOrderStepVerifySearch } from '@/api/WorkOrder'
+
 export default {
-  name: 'ReportCorrect'
+  name: 'Zzjg',
+  components: {
+    Pagination
+  },
+  directives: { elDragDialog, waves },
+  data() {
+    return {
+      mouseHoverType: 'mouseout',
+      isExpandForm: false,
+      mainHeight: 0,
+      tableHeight: 0,
+      form: {
+        wo_code: '', // 宸ュ崟缂栫爜
+        partnumber: '', // 浜у搧缂栫爜
+        partname: '', // 浜у搧鍚嶇О
+        partspec: '', // 浜у搧瑙勬牸
+        reportuser: '', // 鎶ュ伐浜哄憳
+        reportdate: '', // 鎶ュ伐鏃堕棿
+
+        prop: 'report_date', // 鎺掑簭瀛楁
+        order: 'desc', // 鎺掑簭瀛楁
+        page: 1, // 绗嚑椤�
+        rows: 20 // 姣忛〉澶氬皯鏉�
+      },
+      total: 10,
+      tableData: [],
+
+      dialogVisible: false,
+      dialogForm: {
+
+      },
+      tableDataDialog: [],
+      totalDialog: 10
+
+    }
+  },
+  created() {
+  },
+  mounted() {
+    window.addEventListener('resize', this.getHeight)
+    this.getHeight()
+
+    this.getMesOrderStepVerifySearch()
+  },
+  methods: {
+    // 鎶ュ伐璋冩暣鍒楄〃鏌ヨ
+    async getMesOrderStepVerifySearch() {
+      let tempDate = this.form.reportdate
+      if (tempDate.length > 0) {
+        tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+      }
+      const data = {
+        wo_code: this.form.wo_code,
+        partnumber: this.form.partnumber,
+        partname: this.form.partname,
+        partspec: this.form.partspec,
+        reportuser: this.form.reportuser,
+        reportdate: tempDate,
+
+        prop: this.form.prop, // 鎺掑簭瀛楁
+        order: this.form.order, // 鎺掑簭瀛楁
+        page: this.form.page, // 绗嚑椤�
+        rows: this.form.rows // 姣忛〉澶氬皯鏉�
+      }
+      const res = await MesOrderStepVerifySearch(data)
+      this.tableData = res.data
+      this.total = res.count
+    },
+    // 鎺掑簭鏀瑰彉鏃�
+    sortChange({ column, prop, order }) {
+      if (order === 'descending') {
+        order = 'desc'
+      } else if (order === 'ascending') {
+        order = 'asc'
+      } else {
+        order = 'desc'
+      }
+      this.form.order = order
+      this.form.prop = prop
+      this.getMesOrderStepVerifySearch()
+    },
+    // 閲嶇疆
+    reset() {
+      this.form.wo_code = ''
+      this.form.partnumber = ''
+      this.form.partname = ''
+      this.form.partspec = ''
+      this.form.reportuser = ''
+      this.form.reportdate = ''
+      this.getMesOrderStepVerifySearch()
+    },
+
+    // 鎶ュ伐璋冩暣
+    async reportAdjust(row) {
+      const data = {
+        wo_code: row.wo_code,
+        step_code: row.step_code,
+        step_type: row.steptype,
+        isbott: row.first_choke,
+        isend: row.last_choke,
+        id: row.id,
+        sbid: row.sbid
+      }
+      const res = await MesOrderStepModelSearch(data)
+      if (res.code === '200') {
+
+        // this.dialogVisible=true
+      }
+    },
+
+    // 瀵硅瘽妗嗗叧闂簨浠�
+    handleClose() {
+      // this.form.flag = 'TRUE'
+    },
+    getRowKey(row) {
+      return row.partnumber
+    },
+
+    // 瀵硅瘽妗嗗彇娑�
+    dialogVisibleCancel() {
+      this.dialogVisible = false
+    },
+    // 瀵硅瘽妗嗙‘璁�
+    async dialogVisibleConfirm() {
+
+    },
+    // 鑾峰彇椤甸潰楂樺害
+    getHeight() {
+      this.$nextTick(() => {
+        this.mainHeight = window.innerHeight - 85
+        this.tableHeight = this.mainHeight - 205
+        this.$refs.tableDataRef.doLayout()
+      })
+    }
+  }
 }
 </script>
 
-<style scoped>
+<style scoped lang="scss">
+::v-deep .el-dialog .el-divider__text {
+  font-weight: bolder !important;
+}
 
 </style>
diff --git a/src/views/produce/stepReport.vue b/src/views/produce/stepReport.vue
index 1275cd3..1ba74b9 100644
--- a/src/views/produce/stepReport.vue
+++ b/src/views/produce/stepReport.vue
@@ -316,8 +316,10 @@
       @close="handleClose"
     >
       <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="110px">
-        <el-divider v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'||activeName==='涓嶈壇寰呭鐞�'" content-position="left">鍩烘湰淇℃伅
-        </el-divider>
+        <!--        <el-divider v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'||activeName==='涓嶈壇寰呭鐞�'" content-position="left">鍩烘湰淇℃伅</el-divider>-->
+        <el-divider v-if="activeName==='鐢熶骇鍒楄〃'" content-position="left">鎶ュ伐淇℃伅</el-divider>
+        <el-divider v-if="activeName==='澶栧崗鏀舵枡'" content-position="left">鏀舵枡淇℃伅</el-divider>
+        <el-divider v-if="activeName==='涓嶈壇寰呭鐞�'" content-position="left">寰呭鐞嗕俊鎭�</el-divider>
         <el-form-item label="宸ュ崟缂栧彿" class="dialogFormItem">
           <div class="dialogFormItemDiv">{{ dialogForm.wo_code }}</div>
         </el-form-item>
@@ -328,13 +330,13 @@
           <div class="dialogFormItemDiv">{{ dialogForm.partname }}</div>
         </el-form-item>
         <el-form-item label="瑙勬牸鍨嬪彿" class="dialogFormItem">
-          <div class="dialogFormItemDiv">{{ dialogForm.partspec? dialogForm.partspec:'/' }}</div>
+          <div class="dialogFormItemDiv">{{ dialogForm.partspec ? dialogForm.partspec : '/' }}</div>
         </el-form-item>
         <el-form-item label="褰撳墠宸ュ簭" class="dialogFormItem">
           <div class="dialogFormItemDiv">{{ dialogForm.stepname }}</div>
         </el-form-item>
         <el-form-item label="涓嬮亾宸ュ簭" class="dialogFormItem">
-          <div class="dialogFormItemDiv">{{ dialogForm.nextstepname?dialogForm.nextstepname :'/' }}</div>
+          <div class="dialogFormItemDiv">{{ dialogForm.nextstepname ? dialogForm.nextstepname : '/' }}</div>
         </el-form-item>
         <el-form-item label="浠诲姟鏁伴噺" class="dialogFormItem">
           <div class="dialogFormItemDiv">{{ dialogForm.planqty }}</div>
@@ -490,7 +492,7 @@
           <el-input v-model="dialogForm.sqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
         </el-form-item>
 
-        <el-divider v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'" content-position="left">涓嶈壇鏄庣粏</el-divider>
+        <el-divider v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'" content-position="left">涓嶈壇鏄庣粏淇℃伅</el-divider>
         <el-button
           v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'"
           v-waves
@@ -1110,13 +1112,15 @@
         this.dialogForm.eqpcode = res.eqpcode
         this.dialogForm.eqpname = res.eqpname
 
-        this.dialogForm.list = []
-        res.list.forEach(i => {
-          i.acceptQty = parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.laborbad_qty) - parseFloat(i.materielbad_qty)
-          if (i.acceptQty > 0) {
-            this.dialogForm.list.push(i)
-          }
-        })
+        if (this.activeName === '澶栧崗鏀舵枡') {
+          this.dialogForm.list = []
+          res.list.forEach(i => {
+            i.acceptQty = parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.laborbad_qty) - parseFloat(i.materielbad_qty)
+            if (i.acceptQty > 0) {
+              this.dialogForm.list.push(i)
+            }
+          })
+        }
 
         // this.dialogForm.list = res.list
 
@@ -1461,4 +1465,12 @@
   justify-content: center;
 }
 
+::v-deep .el-dialog .el-form-item__label {
+  font-weight: lighter !important;
+}
+
+::v-deep .el-dialog .el-divider__text {
+  font-weight: bolder !important;
+}
+
 </style>
diff --git a/src/views/workOrder/workOrderClose.vue b/src/views/workOrder/workOrderClose.vue
index cf3b6fe..afbd04a 100644
--- a/src/views/workOrder/workOrderClose.vue
+++ b/src/views/workOrder/workOrderClose.vue
@@ -6,7 +6,7 @@
         <el-button v-waves icon="el-icon-switch-button" type="success" @click="orderClose()">宸ュ崟鍏抽棴</el-button>
       </div>
 
-      <div class="bodyTopFormGroup" style="margin-top: 10px;">
+      <div class="bodyTopFormGroup">
         <el-form
           ref="form"
           :model="form"
@@ -2631,7 +2631,7 @@
     getHeight() {
       this.$nextTick(() => {
         this.mainHeight = window.innerHeight - 85
-        this.tableHeight = this.mainHeight - 245
+        this.tableHeight = this.mainHeight - 295
         if (window.innerHeight < 769) {
           this.tableHeight = this.tableHeight - 20
         }

--
Gitblit v1.9.3