小小儁爺
2024-05-31 0ae3687eb84e0e8138b4e79ee3248b0898de833e
src/views/workOrder/workOrderList.vue
@@ -243,6 +243,21 @@
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            v-if="mesSetting.route"
            prop="route_name"
            label="工艺路线"
            sortable="custom"
            show-tooltip-when-overflow
            width="120"
          >
            <template slot-scope="{row}">
              <div v-if="row.route_name">{{ row.route_name }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="plan_qty"
            label="工单数"
@@ -604,6 +619,26 @@
          />
          <!--          oninput="value=value.replace(/[^0-9*.{1}0-9*]/g,'')"-->
        </el-form-item>
        <el-form-item label="所属车间" prop="wkshopcode">
          <el-select
            v-model="dialogForm.wkshopcode"
            filterable
            :popper-append-to-body="false"
            style="width: 200px;"
            placeholder="请选择车间"
            @change="getMesOrderNewStepContent"
          >
            <el-option
              v-for="item in wkshopArr"
              :key="item.torg_code"
              :label="item.torg_name"
              :value="item.torg_code"
            />
          </el-select>
        </el-form-item>
        <el-form-item
          label="产品名称/编码"
          prop="partcode"
@@ -635,23 +670,25 @@
          <el-input v-model="dialogForm.partspec" disabled style="width: 200px" />
        </el-form-item>
        <!--        :disabled="dialogForm.partcode===''"-->
        <el-form-item label="所属车间" prop="wkshopcode">
        <el-form-item label="工艺路线" prop="wkshopcode">
          <el-select
            v-model="dialogForm.wkshopcode"
            v-model="dialogForm.routecode"
            filterable
            :popper-append-to-body="false"
            style="width: 200px;"
            placeholder="请选择车间"
            @change="getMesOrderNewStepContent"
            placeholder="请选择工艺路线"
            @change="sourceType? getMesOrderNewStepContent():routecodeChange()"
          >
            <el-option
              v-for="item in wkshopArr"
              :key="item.torg_code"
              :label="item.torg_name"
              :value="item.torg_code"
              v-for="item in routecodeArr"
              :key="item.route_code"
              :label="item.route_name"
              :value="item.route_code"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="预计交付日期" prop="deliverydate">
          <el-date-picker
            v-model="dialogForm.deliverydate"
@@ -665,6 +702,16 @@
            placeholder="选择日期"
          />
          <!--          :disabled="dialogForm.deliverydate"-->
        </el-form-item>
        <el-form-item label="工序来源" required>
          <el-switch
            v-model="sourceType"
            style="width: 200px;"
            inactive-text="基础设置"
            active-text="历史最新"
            :disabled="!dialogForm.wkshopcode"
            @change="sourceTypeChange"
          />
        </el-form-item>
        <el-divider content-position="left">工序信息</el-divider>
@@ -2001,6 +2048,7 @@
import ElDragSelect from '@/components/DragSelect'
import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui
import DateType from '@/components/DateType'
import { PartSelectRpute, RouteSelectStep } from '@/api/basicSettings'
export default {
  name: 'WorkOrderList',
  components: {
@@ -2066,6 +2114,8 @@
        deliverydate: '', // 交付时间
        data_sources: '', // 数据来源
        routecode: '', // 工艺路线
        mesmaxqty: 0, // 工单的最大值
        mesqtyinit: 0// 工单数量初始值
@@ -2260,7 +2310,14 @@
        { code: 'PE', name: '预计完工日期' },
        { code: 'ED', name: '预计交付日期' },
        { code: 'CT', name: '工单创建日期' }
      ]
      ],
      routecodeArr: [], //
      sourceType: false, // 工序的数据来源
      mesSetting: JSON.parse(localStorage.getItem('mesSetting'))
    }
  },
  watch: {
@@ -2296,6 +2353,15 @@
    // })
  },
  methods: {
    // 工序来源切换
    sourceTypeChange(val) {
      if (val) {
        this.getMesOrderNewStepContent()
      } else {
        this.routecodeChange()
      }
    },
    DateTypeChange(value) {
      this.form.datatype = value
    },
@@ -2534,10 +2600,21 @@
      this.dialogForm.partname = row.partname
      this.dialogForm.partspec = row.partspec
      this.dialogForm.wkshopcode = row.wkshp_code
      this.dialogForm.routecode = row.route_code
      this.dialogForm.deliverydate = row.saleOrderDeliveryDate.substring(0, 11)
      this.dialogForm.mesqty = row.plan_qty
      this.dialogForm.mesqtyinit = row.plan_qty
      // this.sourceTypeChange(false)
      if (!this.dialogForm.routecode) {
        await this.getPartcodeChangeDialog()
      }
      // if (row.status === 'NEW') {
      //
      // }
      const data = {
        sourceid: this.dialogForm.sourceorderid,
@@ -2594,12 +2671,52 @@
      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()
      // if (this.dialogForm.wkshopcode) {
      //   // this.getMesOrderNewStepContent()
      // }
      this.dialogForm.routecode = ''
      this.getPartcodeChangeDialog()
    },
    async  getPartcodeChangeDialog() {
      const { data: res } = await PartSelectRpute({ partcode: this.dialogForm.partcode })
      this.routecodeArr = res
      this.dialogForm.routecode = this.partArr.find(item => item.partcode === this.dialogForm.partcode).default_route
      if (this.dialogForm.routecode && !this.sourceType) {
        await this.routecodeChange()
      } else {
        await this.getMesOrderNewStepContent()
      }
    },
    async routecodeChange() {
      const data = {
        partcode: this.dialogForm.partcode,
        routecode: this.dialogForm.routecode
      }
      const { data: res } = await RouteSelectStep(data)
      this.stepSelectedValue = []
      this.stepTableData = []
      if (res.length > 0) {
        res.sort((a, b) => a.step_seq - b.step_seq)
        res.forEach(i => {
          this.stepTableData.push(
            {
              stepcode: i.step_code,
              // stepname: i.stepname,
              stepprice: i.unprice
            }
          )
        })
        this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
      }
    },
    async  getMesOrderNewStepContent() {
      const data = {
        routecode: this.dialogForm.routecode,
        wkshopcode: this.dialogForm.wkshopcode,
        partcode: this.dialogForm.partcode
      }
@@ -2641,6 +2758,9 @@
        deliverydate: '', // 交付时间
        data_sources: '' // 数据来源
      }
      this.sourceType = false
      this.stepSelectedValue = []
      this.stepTableData = []
      this.$refs.dialogForm.clearValidate()
@@ -2695,6 +2815,7 @@
            data_sources: this.dialogForm.data_sources, // 数据来源
            isstep: workListSub.length > 0 ? 'Y' : 'N', //
            difference: this.dialogForm.mesqty - this.dialogForm.mesqtyinit, // 数据差值
            routecode: this.dialogForm.routecode,
            workListSub
          }