From 23b3fb414080b23ab3be1baa2572215dbd151514 Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期三, 06 五月 2026 17:20:50 +0800
Subject: [PATCH] 1.报工调整修改

---
 src/views/produce/reportCorrect.vue |  223 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 207 insertions(+), 16 deletions(-)

diff --git a/src/views/produce/reportCorrect.vue b/src/views/produce/reportCorrect.vue
index 26c5628..93c584f 100644
--- a/src/views/produce/reportCorrect.vue
+++ b/src/views/produce/reportCorrect.vue
@@ -2,7 +2,11 @@
   <div>
     <div class="body" :style="{height:mainHeight+'px'}">
 
-      <div class="bodyTopFormGroup" style="margin-top: 10px;">
+      <div class="bodyTopButtonGroup" style="justify-content: space-between">
+        <el-button v-waves type="warning" icon="el-icon-edit" @click="batchUpdate">鎵归噺淇敼宸ヤ环</el-button>
+      </div>
+
+      <div class="bodyTopFormGroup">
         <el-form
           ref="form"
           :model="form"
@@ -39,7 +43,22 @@
             <el-form-item v-show="isExpandForm" 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-select
+                v-model="form.stepcode"
+                filterable
+                :popper-append-to-body="false"
+                style="width: 200px"
+                placeholder="璇烽�夋嫨"
+              >
+                <el-option
+                  v-for="item in stepCodeArr"
+                  :key="item.stepcode"
+                  :label="item.stepname"
+                  :value="item.stepcode"
+                />
+              </el-select>
+            </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>
@@ -192,6 +211,13 @@
             </template>
           </el-table-column>
           <el-table-column
+            prop="step_price"
+            label="宸ュ簭宸ヤ环"
+            show-overflow-tooltip
+            sortable="custom"
+            min-width="110"
+          />
+          <el-table-column
             prop="wx_name"
             label="渚涘簲鍟�"
             show-overflow-tooltip
@@ -337,19 +363,57 @@
           />
         </el-form-item>
         <el-form-item v-if="dialogForm.flw_type==='Z'" label="鎶ュ伐鐝粍" class="dialogFormItem">
-          <div style="width: 200px;" class="ellipsis">
-            {{ dialogForm.usergroup_name ? dialogForm.usergroup_name : '/' }}
-          </div>
+          <!--          <div style="width: 200px;" class="ellipsis">-->
+          <!--            {{ dialogForm.usergroup_name ? dialogForm.usergroup_name : '/' }}-->
+          <!--          </div>-->
+
+          <el-select
+            v-model="dialogForm.groupcode"
+            style="width:200px"
+            placeholder="璇烽�夋嫨"
+            filterable
+            :disabled="dialogForm.groupcode===''"
+            :popper-append-to-body="false"
+            @change="usergroupChange"
+          >
+            <el-option
+              v-for="item in usergroupArr"
+              :key="item.usergroupcode"
+              :label="item.usergroupname"
+              :value="item.usergroupcode"
+            />
+          </el-select>
+
         </el-form-item>
         <el-form-item v-if="dialogForm.flw_type!=='Z'" label="渚涘簲鍟�" class="dialogFormItem">
           <div style="width: 200px;" class="ellipsis">
             {{ dialogForm.wx_name }}
           </div>
         </el-form-item>
-        <el-form-item label="鎶ュ伐浜哄憳" class="dialogFormItem">
-          <div style="width: 200px;" class="ellipsis">
-            {{ dialogForm.username }}
-          </div>
+        <el-form-item label="鎶ュ伐浜哄憳" class="dialogFormItem" prop="usercode">
+          <!--          <div style="width: 200px;" class="ellipsis">-->
+          <!--            {{ dialogForm.username }}-->
+          <!--          </div>-->
+
+          <el-select
+            v-model="dialogForm.usercode"
+            style="width:200px"
+            placeholder="璇烽�夋嫨"
+            filterable
+            multiple
+            collapse-tags
+            :multiple-limit="dialogForm.groupcode===''?1:0"
+            :disabled="dialogForm.groupcode===''&&dialogForm.usergroupcode===''"
+            :popper-append-to-body="false"
+          >
+            <el-option
+              v-for="item in reportuserArr"
+              :key="item.usercode"
+              :label="item.usercode+' / '+item.username"
+              :value="item.usercode"
+            />
+          </el-select>
+
         </el-form-item>
         <el-form-item :label="dialogForm.flw_type==='Z'?'鍚堟牸鏁伴噺':'鏀舵枡鏁伴噺'" prop="report_qty" class="dialogFormItem">
           <el-input
@@ -464,6 +528,47 @@
       </span>
     </el-dialog>
 
+    <el-dialog
+      v-el-drag-dialog
+      title="鎵归噺宸ヤ环璋冩暣"
+      :visible.sync="batchUpdateDialogVisible"
+      width="1080px"
+      :close-on-click-modal="false"
+      top="15vh"
+      @closed="batchUpdateHandleClose"
+      @close="batchUpdateHandleClose"
+    >
+      <div style="display: flex;align-items: center">
+        <div>
+          淇敼涓猴細
+        </div>
+        <el-input-number
+          v-model="stepPriceEdit"
+          size="medium"
+          :precision="2"
+          :step="0.1"
+          :min="0"
+          style="margin: 0 10px 5px"
+        />
+        <div>
+          鍏� / 浠�
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <div class="footerButton">
+          <el-button v-waves @click="batchUpdateDialogVisibleCancel">鍙� 娑�</el-button>
+          <el-button
+            v-waves
+            type="primary"
+            :loading="$store.state.app.buttonIsDisabled"
+            :disabled="$store.state.app.buttonIsDisabled"
+            @click="batchUpdateDialogVisibleConfirm"
+          >纭� 瀹�</el-button>
+        </div>
+      </span>
+
+    </el-dialog>
+
   </div>
 </template>
 
@@ -472,8 +577,17 @@
 import { handleDatetime } from '@/utils/global'
 import elDragDialog from '@/directive/el-drag-dialog'
 import waves from '@/directive/waves'
-import { DefectPermissions, PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
-import { MesOrderStepModelSearch, MesOrderStepUpdateSeave, MesOrderStepVerifySearch } from '@/api/WorkOrder'
+import {
+  DefectPermissions, GroupsPermissions,
+  GroupsPersonPermissions, PersonPermissions,
+  PrentOrganizationNoCompany,
+  StepData
+} from '@/api/GeneralBasicData'
+import {
+  MesOrderStepModelSearch, MesOrderStepPriceBatchUpdateSeave,
+  MesOrderStepUpdateSeave,
+  MesOrderStepVerifySearch
+} from '@/api/WorkOrder'
 
 export default {
   name: 'ReportCorrect',
@@ -495,7 +609,7 @@
         partspec: '', // 浜у搧瑙勬牸
         reportuser: '', // 鎶ュ伐浜哄憳
         reportdate: '', // 鎶ュ伐鏃堕棿
-
+        stepcode: '',
         prop: 'report_date', // 鎺掑簭瀛楁
         order: 'desc', // 鎺掑簭瀛楁
         page: 1, // 绗嚑椤�
@@ -540,8 +654,16 @@
       dialogFormRules: {
         report_qty: [
           { required: true, message: '璇疯緭鍏ュ悎鏍兼暟閲�', trigger: ['blur', 'change'] }
+        ],
+        usercode: [
+          { required: true, message: '璇烽�夋嫨鎶ュ伐浜哄憳', trigger: ['blur', 'change'] }
         ]
-      }
+      },
+      stepCodeArr: [], // 涓嬫媺宸ュ簭闆嗗悎
+      batchUpdateDialogVisible: false,
+      stepPriceEdit: 0,
+      usergroupArr: [],
+      reportuserArr: []
 
     }
   },
@@ -552,6 +674,7 @@
     this.getMesOrderStepVerifySearch()
     this.getDefectPermissions()
     this.getPrentOrganizationNoCompany()
+    this.getStepData()
   },
   created() {
   },
@@ -562,8 +685,70 @@
     this.getMesOrderStepVerifySearch()
     this.getDefectPermissions()
     this.getPrentOrganizationNoCompany()
+    this.getStepData()
   },
   methods: {
+    // 鎵归噺淇敼宸ュ簭
+    batchUpdate() {
+      // this.$confirm('鏄惁纭淇敼?', '鎻愮ず', {
+      //   confirmButtonText: '纭畾',
+      //   cancelButtonText: '鍙栨秷',
+      //   type: 'warning'
+      // }).then(() => {
+      //
+      // }).catch(() => {
+      //   this.$notify.info('宸插彇娑堜慨鏀癸紒')
+      // })
+      this.batchUpdateDialogVisible = true
+    },
+    batchUpdateDialogVisibleCancel() {
+      this.batchUpdateDialogVisible = false
+    },
+    batchUpdateDialogVisibleConfirm() {
+      this.$confirm('鏄惁纭淇敼?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        const data = []
+        // "id": "string",
+        //   "price": "string",
+        //   "type": "string"
+        // data = this.tableData.map(i =>  {  id:i.id price:i.step_price, type:i.steptype})
+        this.tableData.forEach(i => {
+          data.push({
+            id: i.id, price: this.stepPriceEdit, type: i.style
+          })
+        })
+        MesOrderStepPriceBatchUpdateSeave(data).then(res => {
+          if (res.code === '200') {
+            this.batchUpdateDialogVisible = false
+            this.$message.success('淇敼鎴愬姛锛�')
+            this.getMesOrderStepVerifySearch()
+          }
+        })
+      }).catch(() => {
+        this.$notify.info('宸插彇娑堜慨鏀癸紒')
+      })
+    },
+    batchUpdateHandleClose() {
+      this.stepPriceEdit = 0
+    },
+    async   usergroupChange(val) {
+      const { data: res } = await GroupsPersonPermissions({ groupcode: val })
+      this.dialogForm.usercode = res[0].usercode_list ? res[0].usercode_list.split(',') : []
+    },
+    // 鑾峰彇宸ュ簭鍩虹璧勬枡
+    async getStepData() {
+      const { data: res } = await StepData()
+      this.stepCodeArr = res
+
+      const { data: res1 } = await GroupsPermissions()// 鐝粍
+      this.usergroupArr = res1
+
+      const { data: res2 } = await PersonPermissions() // 浜哄憳
+      this.reportuserArr = res2
+    },
     async getPrentOrganizationNoCompany() {
       const { data: res } = await PrentOrganizationNoCompany()
       this.wkshopcodeArr = res
@@ -585,6 +770,7 @@
         partname: this.form.partname,
         partspec: this.form.partspec,
         reportuser: this.form.reportuser,
+        stepcode: this.form.stepcode,
         reportdate: tempDate,
 
         prop: this.form.prop, // 鎺掑簭瀛楁
@@ -618,6 +804,7 @@
       this.form.partspec = ''
       this.form.reportuser = ''
       this.form.reportdate = ''
+      this.form.stepcode = ''
       this.getMesOrderStepVerifySearch()
     },
 
@@ -651,7 +838,7 @@
         this.dialogForm.last_choke = row.last_choke
         this.dialogForm.unprice = row.step_price
         this.dialogForm.groupcode = row.usergroup_code
-        this.dialogForm.usercode = row.usercode
+        this.dialogForm.usercode = row.usercode.split(',')
         this.dialogForm.usergroup_name = row.usergroup_name
         this.dialogForm.username = row.username
         this.dialogForm.report_date = row.report_date
@@ -717,7 +904,7 @@
             'last_choke': this.dialogForm.last_choke,
             'unprice': this.dialogForm.unprice,
             'groupcode': this.dialogForm.groupcode,
-            'usercode': this.dialogForm.usercode,
+            'usercode': this.dialogForm.usercode.join(','),
             wxcode: this.dialogForm.wx_code,
             'report_date': this.dialogForm.report_date,
             'report_qty': parseFloat(this.dialogForm.report_qty),
@@ -744,7 +931,7 @@
     getHeight() {
       this.$nextTick(() => {
         this.mainHeight = window.innerHeight - 85
-        this.tableHeight = this.mainHeight - 205
+        this.tableHeight = this.mainHeight - 255
         this.$refs.tableDataRef.doLayout()
       })
     }
@@ -789,4 +976,8 @@
   align-items: center;
 }
 
+::v-deep .el-input--medium >input{
+  height: 36px !important;
+}
+
 </style>

--
Gitblit v1.9.3