小小儁爺
2026-05-06 6082f939a0b869db7957473e2792501c1ff57a43
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"
@@ -30,16 +34,37 @@
            <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-form-item label="订单号" style=" display: flex;">
              <el-input v-model="form.orderno" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <el-form-item label="销售单号" style=" display: flex;">
              <el-input v-model="form.saorderno" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" 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-form-item v-show="isExpandForm" label="产品名称" style=" display: flex;">
              <el-input v-model="form.partname" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <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>
@@ -89,10 +114,10 @@
          ref="tableDataRef"
          class="tableFixed"
          :data="tableData"
          :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
          :height="isExpandForm?tableHeight:(tableHeight+80)+'px'"
          border
          row-class-name="custom-row"
          :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
          :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px',}"
          highlight-current-row
          :header-cell-style="this.$headerCellStyle"
          :cell-style="this.$cellStyle"
@@ -117,6 +142,28 @@
            min-width="160"
            show-overflow-tooltip
          />
          <el-table-column
            prop="m_po"
            label="订单号"
            min-width="160"
            show-tooltip-when-overflow
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.m_po?row.m_po:'/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="saleOrderCode"
            label="销售单号"
            min-width="160"
            show-tooltip-when-overflow
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.saleOrderCode?row.saleOrderCode:'/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="partnumber"
            label="产品编码"
@@ -191,6 +238,13 @@
              {{ row.steptype === 'Z' ? '自制' : '外协' }}
            </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="供应商"
@@ -305,6 +359,12 @@
          </div>
          <!--          <el-input v-model="dialogForm.postcode" style="width: 200px" />-->
        </el-form-item>
        <el-form-item label="订单号" class="dialogFormItem">
          <div style="width: 200px;">
            {{ dialogForm.m_po }}
          </div>
          <!--          <el-input v-model="dialogForm.postcode" style="width: 200px" />-->
        </el-form-item>
        <el-form-item label="产品编码" class="dialogFormItem">
          <div style="width: 200px;">
            {{ dialogForm.partnumber }}
@@ -337,19 +397,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 +562,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 +611,18 @@
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',
@@ -489,13 +638,15 @@
      tableHeight: 0,
      form: {
        wkshopcode: '',
        orderno: '',
        wo_code: '', // 工单编码
        partnumber: '', // 产品编码
        partname: '', // 产品名称
        partspec: '', // 产品规格
        reportuser: '', // 报工人员
        reportdate: '', // 报工时间
        stepcode: '',
        saorderno: '',
        prop: 'report_date', // 排序字段
        order: 'desc', // 排序字段
        page: 1, // 第几页
@@ -540,8 +691,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 +711,7 @@
    this.getMesOrderStepVerifySearch()
    this.getDefectPermissions()
    this.getPrentOrganizationNoCompany()
    this.getStepData()
  },
  created() {
  },
@@ -562,8 +722,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,8 +807,10 @@
        partname: this.form.partname,
        partspec: this.form.partspec,
        reportuser: this.form.reportuser,
        stepcode: this.form.stepcode,
        reportdate: tempDate,
        orderno: this.form.orderno,
        saorderno: this.form.saorderno,
        prop: this.form.prop, // 排序字段
        order: this.form.order, // 排序字段
        page: this.form.page, // 第几页
@@ -613,11 +837,14 @@
    reset() {
      this.form.wkshopcode = ''
      this.form.wo_code = ''
      this.form.saorderno = ''
      this.form.orderno = ''
      this.form.partnumber = ''
      this.form.partname = ''
      this.form.partspec = ''
      this.form.reportuser = ''
      this.form.reportdate = ''
      this.form.stepcode = ''
      this.getMesOrderStepVerifySearch()
    },
@@ -636,6 +863,7 @@
      if (res.code === '200') {
        this.dialogForm.id = row.id
        this.dialogForm.sbid = row.sbid
        this.dialogForm.m_po = row.m_po
        this.dialogForm.wo_code = row.wo_code
        this.dialogForm.partnumber = row.partnumber
        this.dialogForm.partname = row.partname
@@ -651,7 +879,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 +945,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 +972,7 @@
    getHeight() {
      this.$nextTick(() => {
        this.mainHeight = window.innerHeight - 85
        this.tableHeight = this.mainHeight - 205
        this.tableHeight = this.mainHeight - 295
        this.$refs.tableDataRef.doLayout()
      })
    }
@@ -789,4 +1017,8 @@
  align-items: center;
}
::v-deep .el-input--medium >input{
  height: 36px !important;
}
</style>