loulijun2021
2024-05-06 46528c3843ce67038ddb2e00dd3d3998c206a69e
src/views/workOrder/workOrderList.vue
@@ -20,6 +20,22 @@
          style="display: flex;"
        >
          <div class="elForm">
            <el-form-item label="车间名称" style=" display: flex;">
              <el-select
                v-model="form.wkshopcode"
                filterable
                :popper-append-to-body="false"
                style="width: 200px"
                placeholder="请选择"
              >
                <el-option
                  v-for="item in wkshopcodeArr"
                  :key="item.torg_code"
                  :label="item.torg_name"
                  :value="item.torg_code"
                />
              </el-select>
            </el-form-item>
            <el-form-item label="工单状态" style=" display: flex;">
              <el-select
                v-model="form.mesorderstus"
@@ -43,7 +59,7 @@
            <el-form-item label="源单单号" style="display: flex;">
              <el-input v-model="form.sourceorder" 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.saleordercode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="单据类型" style=" display: flex;">
@@ -247,6 +263,18 @@
            width="100"
          />
          <el-table-column
            prop="clerkuser"
            label="销售业务员"
            sortable="custom"
            show-tooltip-when-overflow
            width="150"
          >
            <template slot-scope="{row}">
              <div v-if="row.clerkuser">{{ row.clerkuser }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="wkshp_name"
            label="生产车间"
            show-tooltip-when-overflow
@@ -269,13 +297,13 @@
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="data_sources"
            show-tooltip-when-overflow
            label="数据来源"
            sortable="custom"
            width="120"
          />
          <!--          <el-table-column-->
          <!--            prop="data_sources"-->
          <!--            show-tooltip-when-overflow-->
          <!--            label="数据来源"-->
          <!--            sortable="custom"-->
          <!--            width="120"-->
          <!--          />-->
          <el-table-column
            prop="lm_user"
@@ -404,6 +432,11 @@
            width="150"
          />
          <el-table-column
            label="工序单价"
            show-tooltip-when-overflow
            prop="stepprice"
          />
          <el-table-column
            label="已生产数量"
            show-tooltip-when-overflow
            prop="produceq_qty"
@@ -467,7 +500,7 @@
    <!--新增派发对话框-->
    <el-dialog
      v-el-drag-dialog
      :title="operation==='add'?'新增':'派发'"
      :title="operation==='add'?'新增':(operation==='edit'?'修改':'详情')"
      :visible.sync="dialogVisible"
      width="1200px"
      top="8vh"
@@ -599,6 +632,7 @@
            :popper-append-to-body="false"
            style="width: 200px;"
            placeholder="请选择车间"
            @change="getMesOrderNewStepContent"
          >
            <el-option
              v-for="item in wkshopArr"
@@ -634,6 +668,7 @@
            placeholder="请选择相对应工序"
            @change="stepSelectedValueChange"
          >
            <!--            :disabled="!(dialogForm.mesorderstus==='NEW'||dialogForm.mesorderstus==='ALLO')"-->
            <el-option
              v-for="item in stepSelectArr"
              :key="item.stepcode"
@@ -720,7 +755,7 @@
          <el-button v-waves @click="dialogVisibleCancel">取 消</el-button>
          <!--          <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirmPreview('add')">预览</el-button>-->
          <el-button
            v-if="operation!=='view'"
            v-if="operation!=='view'&&(dialogForm.mesorderstus==='NEW'||dialogForm.mesorderstus==='ALLO')"
            v-waves
            type="primary"
            :loading="$store.state.app.buttonIsDisabled"
@@ -883,24 +918,40 @@
            <!--                size="mini"-->
            <!--              />-->
            <!--            </el-form-item>-->
            <el-form-item label="工单状态" style=" display: flex;">
            <!--            <el-form-item label="工单状态" style=" display: flex;">-->
            <!--              <el-select-->
            <!--                v-model="sourceForm.mesordercode"-->
            <!--                filterable-->
            <!--                :popper-append-to-body="false"-->
            <!--                style="width: 200px"-->
            <!--                placeholder="请选择"-->
            <!--              >-->
            <!--                <el-option-->
            <!--                  v-for="item in erporderstusArr"-->
            <!--                  :key="item.code"-->
            <!--                  :label="item.name"-->
            <!--                  :value="item.code"-->
            <!--                />-->
            <!--              </el-select>-->
            <!--            </el-form-item>-->
            <el-form-item label="车间名称" style=" display: flex;">
              <el-select
                v-model="sourceForm.mesordercode"
                v-model="sourceForm.wkshopcode"
                filterable
                :popper-append-to-body="false"
                style="width: 200px"
                placeholder="请选择"
              >
                <el-option
                  v-for="item in erporderstusArr"
                  :key="item.code"
                  :label="item.name"
                  :value="item.code"
                  v-for="item in wkshopcodeArr"
                  :key="item.torg_code"
                  :label="item.torg_name"
                  :value="item.torg_code"
                />
              </el-select>
            </el-form-item>
            <el-form-item label="工单编号" style=" display: flex;">
              <el-input v-model="sourceForm.sourceorder" placeholder="请输入" style="width: 200px" />
              <el-input v-model="sourceForm.mesordercode" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <el-form-item label="产品编码" style=" display: flex;">
              <el-input v-model="sourceForm.partcode" style="width: 200px" placeholder="请输入" />
@@ -909,9 +960,9 @@
            <el-form-item v-show="isExpandDialog" label="产品名称" style=" display: flex;">
              <el-input v-model="sourceForm.partname" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandDialog" label="产品规格" style=" display: flex;">
              <el-input v-model="sourceForm.partspec" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <!--            <el-form-item v-show="isExpandDialog" label="产品规格" style=" display: flex;">-->
            <!--              <el-input v-model="sourceForm.partspec" style="width: 200px" placeholder="请输入" />-->
            <!--            </el-form-item>-->
            <el-form-item v-show="isExpandDialog" label="创建人员" style=" display: flex;">
              <el-input v-model="sourceForm.creatuser" style="width: 200px" placeholder="请输入" />
            </el-form-item>
@@ -967,10 +1018,10 @@
      <div class="elTableDiv">
        <el-table
          :data="sourceTableData"
          :height="isExpandDialog?(tableHeight+60)+'px':(tableHeight+140)+'px'"
          :height="isExpandDialog?(tableHeight+100)+'px':(tableHeight+140)+'px'"
          border
          :row-class-name="tableRowClassName"
          :style="{width: 100+'%',height:isExpandDialog?(tableHeight+60)+'px':(tableHeight+140)+'px',}"
          :style="{width: 100+'%',height:isExpandDialog?(tableHeight+100)+'px':(tableHeight+140)+'px',}"
          highlight-current-row
          :header-cell-style="this.$headerCellStyle"
          :cell-style="this.$cellStyle"
@@ -995,7 +1046,7 @@
            </template>
          </el-table-column>
          <el-table-column
            prop="RowNum"
            prop="rowNum"
            width="50"
            fixed
            label="序号"
@@ -1061,8 +1112,15 @@
          />
          <el-table-column
            prop="bad_qty"
            label="报废数量"
            prop="laborbad_qty"
            label="工废数量"
            width="150"
            show-tooltip-when-overflow
            sortable="custom"
          />
          <el-table-column
            prop="materielbad_qty"
            label="料废数量"
            width="150"
            show-tooltip-when-overflow
            sortable="custom"
@@ -1087,30 +1145,30 @@
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="plan_startdate"
            label="预计开工时间"
            show-tooltip-when-overflow
            sortable="custom"
            width="130"
          >
            <template slot-scope="{row}">
              <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="plan_enddate"
            label="预计完工时间"
            show-tooltip-when-overflow
            sortable="custom"
            width="130"
          >
            <template slot-scope="{row}">
              <div v-if="row.plan_enddate">{{ row.plan_enddate.substring(0, 11) }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <!--          <el-table-column-->
          <!--            prop="plan_startdate"-->
          <!--            label="预计开工时间"-->
          <!--            show-tooltip-when-overflow-->
          <!--            sortable="custom"-->
          <!--            width="130"-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>-->
          <!--              <div v-else>/</div>-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <!--          <el-table-column-->
          <!--            prop="plan_enddate"-->
          <!--            label="预计完工时间"-->
          <!--            show-tooltip-when-overflow-->
          <!--            sortable="custom"-->
          <!--            width="130"-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              <div v-if="row.plan_enddate">{{ row.plan_enddate.substring(0, 11) }}</div>-->
          <!--              <div v-else>/</div>-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <el-table-column
            prop="lm_user"
            label="创建人员"
@@ -1923,12 +1981,12 @@
import {
  AddMesOrderCodeSearch,
  AddUpdateMesOrder, DeleteMesOrder,
  MesBadOrderSearch, MesOrderDistribution,
  MesBadOrderSearch, MesOrderDistribution, MesOrderNewStepContent,
  MesOrderSearch,
  UpdateMesOrderStepSearch
} from '@/api/WorkOrder'
import { PartSelect } from '@/api/ProductModel'
import { PrentOrganization, StepData } from '@/api/GeneralBasicData'
import { PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData'
import Sortable from 'sortablejs'
import ElDragSelect from '@/components/DragSelect'
import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui
@@ -1949,6 +2007,7 @@
      tableHeight: 0,
      username: '',
      form: {
        wkshopcode: '', // 车间编码
        mesorderstus: '', // 工单状态码
        mesordercode: '', // 工单编号
        partcode: '', // 产品编码
@@ -1974,6 +2033,7 @@
        // { code: 'NOSCHED', name: '待排程' },
        // { code: 'SCHED', name: '已排程' }
      ],
      wkshopcodeArr: [],
      total: 10,
      tableData: [],
      dialogVisible: false,
@@ -2120,6 +2180,7 @@
      dialogVisibleSource: false,
      sourceTableData: [],
      sourceForm: {
        wkshopcode: '', // 车间编码
        mesordercode: '', // 工单编号
        sourceorder: '', // 订单编号
        saleordercode: '', // 销售订单号
@@ -2242,8 +2303,13 @@
      this.getMesOrderSearch().then(res => {
        if (res.code === '200') {
          this.getSelect()
          this.getPrentOrganizationNoCompany()
        }
      })
    },
    async getPrentOrganizationNoCompany() {
      const { data: res } = await PrentOrganizationNoCompany()
      this.wkshopcodeArr = res
    },
    async getMesOrderSearch() {
      // let tempDate = this.form.createdate
@@ -2252,6 +2318,7 @@
      // }
      const data = {
        wkshopcode: this.form.wkshopcode,
        mesorderstus: this.form.mesorderstus, // 工单状态码
        mesordercode: this.form.mesordercode, // 工单编号
        partcode: this.form.partcode, // 产品编码
@@ -2323,6 +2390,7 @@
    // 重置
    reset(val) {
      this.form.wkshopcode = ''
      this.form.mesorderstus = ''
      this.form.mesordercode = ''
      this.form.partcode = ''
@@ -2370,6 +2438,10 @@
    },
    // 派发
    send() {
      if (this.multipleSelection.length === 0) {
        return this.$message.info('请先勾选相对应的工单!')
      }
      this.$confirm('是否确认派发?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
@@ -2378,9 +2450,6 @@
        MesOrderDistribution(this.multipleSelection).then(res => {
          if (res.code === '200') {
            this.$notify.success('派发成功!')
            if (this.form.page > 1 && this.tableData.length === 1) {
              this.form.page--
            }
            this.getMesOrderSearch()
          }
        })
@@ -2444,16 +2513,36 @@
      const { data: res } = await UpdateMesOrderStepSearch(data)
      this.dialogForm.mesmaxqty = res.canupdate_qty
      res.stepdata.forEach(i => {
        this.stepTableData.push(
          {
            stepcode: i.step_code,
            stepname: i.stepname,
            stepprice: i.stepprice
          }
        )
      })
      this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
      if (res.stepdata.length > 0) {
        res.stepdata.forEach(i => {
          this.stepTableData.push(
            {
              stepcode: i.step_code,
              stepname: i.stepname,
              stepprice: i.stepprice
            }
          )
        })
        this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
      } else {
        const data2 = {
          wkshopcode: this.dialogForm.wkshopcode,
          partcode: this.dialogForm.partcode
        }
        const { data: res2 } = await MesOrderNewStepContent(data2)
        if (res2.length > 0) {
          res2.forEach(i => {
            this.stepTableData.push(
              {
                stepcode: i.step_code,
                // stepname: i.stepname,
                stepprice: i.stepprice
              }
            )
          })
          this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
        }
      }
      this.dialogVisible = true
    },
@@ -2467,7 +2556,33 @@
      this.dialogForm.partname = this.partArr.find(item => item.partcode === val).partname
      this.dialogForm.partcode = this.partArr.find(item => item.partcode === val).partcode
      this.dialogForm.partspec = this.partArr.find(item => item.partcode === val).partspec
      if (this.dialogForm.wkshopcode) {
        this.getMesOrderNewStepContent()
      }
    },
    async  getMesOrderNewStepContent() {
      const data = {
        wkshopcode: this.dialogForm.wkshopcode,
        partcode: this.dialogForm.partcode
      }
      const { data: res } = await MesOrderNewStepContent(data)
      // console.log(res)
      this.stepSelectedValue = []
      this.stepTableData = []
      if (res.length > 0) {
        res.forEach(i => {
          this.stepTableData.push(
            {
              stepcode: i.step_code,
              // stepname: i.stepname,
              stepprice: i.stepprice
            }
          )
        })
        this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
      }
    },
    // 对话框关闭事件
    handleClose() {
      this.dialogForm = {
@@ -2520,6 +2635,10 @@
              }
            )
          })
          if (workListSub.length === 0) {
            return this.$message.info('工序不能为空!')
          }
          const data = {
            wostatus: this.dialogForm.mesorderstus, // 工单状态
@@ -2816,9 +2935,10 @@
      }
      const data = {
        wkshopcode: this.form.wkshopcode, // 车间编码
        mesordercode: this.sourceForm.mesordercode, // 工单编号
        sourceorder: this.sourceForm.sourceorder, // 订单订单号
        saleordercode: this.sourceForm.sourceorder, // 订单订单号
        sourceorder: '', // 源单单号
        saleordercode: '', // 销售单号
        partcode: this.sourceForm.partcode, // 产品编码
        partname: this.sourceForm.partname, // 产品名称
        partspec: this.sourceForm.partspec, // 产品规格
@@ -2851,6 +2971,7 @@
      this.getMesBadOrderSearch()
    },
    sourceReset() {
      this.sourceForm.wkshopcode = ''
      this.sourceForm.mesordercode = ''
      this.sourceForm.sourceorder = ''
      this.sourceForm.partcode = ''
@@ -2865,6 +2986,7 @@
    dialogVisibleSourceClose() {
      this.radioSelectedId = ''
      this.sourceForm.wkshopcode = ''
      this.sourceForm.mesordercode = ''
      this.sourceForm.sourceorder = ''
      this.sourceForm.partcode = ''