1.新增 生产工单根据工单状态显示不同的列表行样式,车间名称单选变为多选查询选择
已修改4个文件
487 ■■■■■ 文件已修改
src/views/workOrder/produceOrderList.vue 86 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/workOrderClose.vue 154 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/workOrderList.vue 119 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/workOrderSend.vue 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/produceOrderList.vue
@@ -9,11 +9,17 @@
        <div class="statusItem" :class="{statusItemLight:form.erporderstus===''}" @click="statusChange('')">全部</div>
        <div class="statusItem" :class="{statusItemLight:form.erporderstus==='NEW'}" @click="statusChange('NEW')">新订单
        </div>
        <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CREATING'}"
             @click="statusChange('CREATING')">部分下达
        <div
          class="statusItem"
          :class="{statusItemLight:form.erporderstus==='CREATING'}"
          @click="statusChange('CREATING')"
        >部分下达
        </div>
        <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CREATED'}"
             @click="statusChange('CREATED')">全部下达
        <div
          class="statusItem"
          :class="{statusItemLight:form.erporderstus==='CREATED'}"
          @click="statusChange('CREATED')"
        >全部下达
        </div>
        <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CLOSED'}" @click="statusChange('CLOSED')">
          已关闭
@@ -52,6 +58,8 @@
              <el-select
                v-model="form.wkshopcode"
                filterable
                multiple
                collapse-tags
                :popper-append-to-body="false"
                style="width: 200px"
                placeholder="请选择"
@@ -81,22 +89,22 @@
              </el-select>
            </el-form-item>
            <el-form-item label="订单编号" style=" display: flex;">
              <el-input v-model="form.erpordercode" placeholder="请输入" style="width: 200px"/>
              <el-input v-model="form.erpordercode" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <el-form-item label="销售订单" style=" display: flex;">
              <el-input v-model="form.saleordercode" style="width: 200px" placeholder="请输入"/>
              <el-input v-model="form.saleordercode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="产品编码" style=" display: flex;">
              <el-input v-model="form.partcode" style="width: 200px" placeholder="请输入"/>
              <el-input v-model="form.partcode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="产品名称" style=" display: flex;">
              <el-input v-model="form.partname" style="width: 200px" placeholder="请输入"/>
              <el-input v-model="form.partname" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="产品规格" style=" display: flex;">
              <el-input v-model="form.partspec" style="width: 200px" placeholder="请输入"/>
              <el-input v-model="form.partspec" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <DateType
@@ -559,35 +567,35 @@
    >
      <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="106px">
        <el-form-item label="订单编号" prop="erpordercode">
          <el-input v-model="dialogForm.erpordercode" disabled style="width: 200px"/>
          <el-input v-model="dialogForm.erpordercode" disabled style="width: 200px" />
        </el-form-item>
        <el-form-item label="产品编码" prop="partcode">
          <el-input v-model="dialogForm.partcode" disabled style="width: 200px"/>
          <el-input v-model="dialogForm.partcode" disabled style="width: 200px" />
        </el-form-item>
        <el-form-item label="产品名称" prop="partname">
          <el-input v-model="dialogForm.partname" disabled style="width: 200px"/>
          <el-input v-model="dialogForm.partname" disabled style="width: 200px" />
        </el-form-item>
        <el-form-item label="产品规格" prop="partspec">
          <el-input v-model="dialogForm.partspec" disabled style="width: 200px"/>
          <el-input v-model="dialogForm.partspec" disabled style="width: 200px" />
        </el-form-item>
        <el-form-item label="顶级物料编码" prop="TopInventoryCode">
          <el-input v-model="dialogForm.TopInventoryCode" disabled style="width: 200px"/>
          <el-input v-model="dialogForm.TopInventoryCode" disabled style="width: 200px" />
        </el-form-item>
        <el-form-item label="顶级物料名称" prop="TopInventoryName">
          <el-input v-model="dialogForm.TopInventoryName" disabled style="width: 200px"/>
          <el-input v-model="dialogForm.TopInventoryName" disabled style="width: 200px" />
        </el-form-item>
        <el-form-item label="生产车间" prop="wkshopname">
          <el-input v-model="dialogForm.wkshopname" disabled style="width: 200px"/>
          <el-input v-model="dialogForm.wkshopname" disabled style="width: 200px" />
        </el-form-item>
        <el-form-item label="所属仓库" prop="warehousename">
          <el-input v-model="dialogForm.warehousename" disabled style="width: 200px"/>
          <el-input v-model="dialogForm.warehousename" disabled style="width: 200px" />
        </el-form-item>
        <el-form-item label="订单数量" prop="erpqty">
          <el-input v-model="dialogForm.erpqty" disabled style="width: 200px"/>
          <el-input v-model="dialogForm.erpqty" disabled style="width: 200px" />
        </el-form-item>
        <el-form-item label="已下单数" prop="relse_qty">
          <el-input
@@ -686,7 +694,7 @@
<script>
import Pagination from '@/components/Pagination'
import {handleDatetime} from '@/utils/global'
import { handleDatetime } from '@/utils/global'
import elDragDialog from '@/directive/el-drag-dialog'
import waves from '@/directive/waves'
import {
@@ -696,8 +704,8 @@
  MarkBatchSaveErpOrder,
  MarkSaveErpOrder, ReverseClosedErpOrder
} from '@/api/WorkOrder'
import {SeaveSearchErpOrder} from '@/api/ErpSyncMes'
import {PrentOrganizationNoCompany} from '@/api/GeneralBasicData'
import { SeaveSearchErpOrder } from '@/api/ErpSyncMes'
import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
import DateType from '@/components/DateType'
const SER_HZ = /^[\u4e00-\u9fa5]+$/
@@ -706,7 +714,7 @@
  components: {
    Pagination, DateType
  },
  directives: {elDragDialog, waves},
  directives: { elDragDialog, waves },
  data() {
    const validateName = (rule, value, callback) => {
      if (!value) {
@@ -725,7 +733,7 @@
      mainHeight: 0,
      tableHeight: 0,
      form: {
        wkshopcode: '', // 车间编码
        wkshopcode: [], // 车间编码
        erporderstus: '', // 订单状态码
        erpordercode: '', // 订单编号
        partcode: '', // 产品编码
@@ -748,10 +756,10 @@
      },
      erporderstusArr: [
        {code: 'NEW', name: '新订单'},
        {code: 'CREATING', name: '部分下达'},
        {code: 'CREATED', name: '全部下达'},
        {code: 'CLOSED', name: '已关闭'}
        { code: 'NEW', name: '新订单' },
        { code: 'CREATING', name: '部分下达' },
        { code: 'CREATED', name: '全部下达' },
        { code: 'CLOSED', name: '已关闭' }
      ],
      wkshopcodeArr: [],
      total: 10,
@@ -801,13 +809,13 @@
        //   { required: true, validator: validateName, trigger: ['blur', 'change'] }
        // ],
        markqty: [
          {required: true, message: '请输入下单数量', trigger: ['blur', 'change']}
          { required: true, message: '请输入下单数量', trigger: ['blur', 'change'] }
        ],
        ordernum: [
          {required: true, message: '请输入下单单数', trigger: ['blur', 'change']}
          { required: true, message: '请输入下单单数', trigger: ['blur', 'change'] }
        ],
        saleOrderDeliveryDate: [
          {required: true, message: '请选择预计交付日期', trigger: ['blur', 'change']}
          { required: true, message: '请选择预计交付日期', trigger: ['blur', 'change'] }
        ]
      },
@@ -860,7 +868,7 @@
    },
    async getPrentOrganizationNoCompany() {
      const {data: res} = await PrentOrganizationNoCompany()
      const { data: res } = await PrentOrganizationNoCompany()
      this.wkshopcodeArr = res
    },
    async getErpOrderSearch() {
@@ -878,7 +886,7 @@
      const data = {
        erporderstus: this.form.erporderstus, // 订单状态码
        wkshopcode: this.form.wkshopcode, // 车间编码
        wkshopcode: this.form.wkshopcode.join(','), // 车间编码
        erpordercode: this.form.erpordercode, // 订单编号
        saleordercode: this.form.saleordercode, // 销售单号
@@ -909,7 +917,7 @@
      this.total = res.count
    },
    // 排序改变时
    sortChange({column, prop, order}) {
    sortChange({ column, prop, order }) {
      if (order === 'descending') {
        order = 'desc'
      } else if (order === 'ascending') {
@@ -956,7 +964,7 @@
    },
    // 重置
    reset() {
      this.form.wkshopcode = ''
      this.form.wkshopcode = []
      this.form.erporderstus = ''
      this.form.erpordercode = ''
      this.form.partcode = ''
@@ -995,7 +1003,7 @@
              cancelButtonText: '取消',
              type: 'warning'
            }).then(() => {
              DeleteErpOrder({erpordercode: item.wo, erporderid: id}).then(res => {
              DeleteErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => {
                if (res.code === '200') {
                  this.$message.success('订单删除成功!')
                  this.getErpOrderSearch()
@@ -1018,7 +1026,7 @@
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          ClosedErpOrder({erpordercode: row.wo, erporderid: row.id}).then(res => {
          ClosedErpOrder({ erpordercode: row.wo, erporderid: row.id }).then(res => {
            if (res.code === '200') {
              this.$message.success('订单关闭成功!')
              this.getErpOrderSearch()
@@ -1036,7 +1044,7 @@
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        ReverseClosedErpOrder({erpordercode: row.wo, erporderid: row.id}).then(res => {
        ReverseClosedErpOrder({ erpordercode: row.wo, erporderid: row.id }).then(res => {
          if (res.code === '200') {
            this.$message.success('订单启动成功!')
            this.getErpOrderSearch()
@@ -1250,11 +1258,11 @@
        this.$refs.tableDataRef.doLayout()
      })
    },
    tableRowClassName({row, rowIndex}) {
    tableRowClassName({ row, rowIndex }) {
      return 'custom-row'
    },
    getSummaries(param) {
      const {columns, data} = param
      const { columns, data } = param
      const sums = []
      const i = 7
      columns.forEach((column, index) => {
src/views/workOrder/workOrderClose.vue
@@ -20,6 +20,8 @@
              <el-select
                v-model="form.wkshopcode"
                filterable
                multiple
                collapse-tags
                :popper-append-to-body="false"
                style="width: 200px"
                placeholder="请选择"
@@ -50,13 +52,13 @@
              </el-select>
            </el-form-item>
            <el-form-item label="工单编号" style=" display: flex;">
              <el-input v-model="form.mesordercode" placeholder="请输入" style="width: 200px"/>
              <el-input v-model="form.mesordercode" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <el-form-item label="源单单号" style="display: flex;">
              <el-input v-model="form.sourceorder" style="width: 200px" placeholder="请输入"/>
              <el-input v-model="form.sourceorder" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="销售订单" style="display: flex;">
              <el-input v-model="form.saleordercode" style="width: 200px" placeholder="请输入"/>
              <el-input v-model="form.saleordercode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="单据类型" style=" display: flex;">
              <el-select
@@ -75,16 +77,16 @@
              </el-select>
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="产品编码" style=" display: flex;">
              <el-input v-model="form.partcode" style="width: 200px" placeholder="请输入"/>
              <el-input v-model="form.partcode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="产品名称" style=" display: flex;">
              <el-input v-model="form.partname" style="width: 200px" placeholder="请输入"/>
              <el-input v-model="form.partname" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="产品规格" style=" display: flex;">
              <el-input v-model="form.partspec" style="width: 200px" placeholder="请输入"/>
              <el-input v-model="form.partspec" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="创建人员" style=" display: flex;">
              <el-input v-model="form.creatuser" style="width: 200px" placeholder="请输入"/>
              <el-input v-model="form.creatuser" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="创建时间" style=" display: flex;">
              <!--              <el-date-picker-->
@@ -156,7 +158,7 @@
            type="selection"
            width="50"
          />
<!--          :selectable="selected"-->
          <!--          :selectable="selected"-->
          <el-table-column
            prop="rowNum"
            width="50"
@@ -598,7 +600,7 @@
        <el-form-item label="工单编号" prop="mesordercode">
          <!--          <el-input v-model="dialogForm.mesordercode" :disabled="operation!=='add'" style="width: 200px" />-->
          <el-input v-model="dialogForm.mesordercode" disabled style="width: 200px"/>
          <el-input v-model="dialogForm.mesordercode" disabled style="width: 200px" />
        </el-form-item>
        <!--        <div style="display: flex">-->
        <el-form-item label="工单类型" prop="mesorderstus">
@@ -679,7 +681,7 @@
        <!--          <el-input v-model="dialogForm.partcode" disabled style="width: 200px" />-->
        <!--        </el-form-item>-->
        <el-form-item label="产品规格" prop="partspec">
          <el-input v-model="dialogForm.partspec" disabled style="width: 200px"/>
          <el-input v-model="dialogForm.partspec" disabled style="width: 200px" />
        </el-form-item>
        <!--        :disabled="dialogForm.partcode===''"-->
        <el-form-item label="所属车间" prop="wkshopcode">
@@ -1020,20 +1022,20 @@
              </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.sourceorder" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <el-form-item label="产品编码" style=" display: flex;">
              <el-input v-model="sourceForm.partcode" style="width: 200px" placeholder="请输入"/>
              <el-input v-model="sourceForm.partcode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandDialog" label="产品名称" style=" display: flex;">
              <el-input v-model="sourceForm.partname" style="width: 200px" placeholder="请输入"/>
              <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-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-input v-model="sourceForm.creatuser" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item
@@ -1357,9 +1359,9 @@
            justify-content: center;
            position: relative;"
          >
            <div id="qrCode0" ref="qrCodeDiv0"/>
            <div id="qrCode0" ref="qrCodeDiv0" />
          </div>
          <div style="background-color: #fff;width: 20px;height:120px; position: absolute;right: 0"/>
          <div style="background-color: #fff;width: 20px;height:120px; position: absolute;right: 0" />
          <div
            style="z-index: 10;background-color:transparent;width: 120px;height:120px; position: absolute;right: 21px"
          />
@@ -1390,7 +1392,7 @@
            align="center"
          >
            <template slot-scope="{row}">
              <div :id="'qrCode'+row.seq" :ref="'qrCodeDiv'+row.seq" class="tableColumn"/>
              <div :id="'qrCode'+row.seq" :ref="'qrCodeDiv'+row.seq" class="tableColumn" />
            </template>
          </el-table-column>
          <el-table-column
@@ -1924,11 +1926,11 @@
      @close="handleCloseRoute"
    >
      <div>
        <i class="el-icon-s-comment" style="color:#42b983;"/> 产品名称:{{ dialogFormRoute.projectName }}
        <i class="el-icon-s-comment" style="color:#42b983;" /> 产品名称:{{ dialogFormRoute.projectName }}
      </div>
      <el-divider/>
      <el-divider />
      <div style="margin-bottom: 10px">
        <i class="el-icon-s-operation" style="color:#42b983;"/> 工艺路线集合
        <i class="el-icon-s-operation" style="color:#42b983;" /> 工艺路线集合
      </div>
      <div class="myCheckboxGroup">
@@ -1952,9 +1954,9 @@
        </div>
      </div>
      <el-divider/>
      <el-divider />
      <div>
        <i class="el-icon-s-operation" style="color:#42b983;"/> 默认工艺路线
        <i class="el-icon-s-operation" style="color:#42b983;" /> 默认工艺路线
      </div>
      <div style="margin-top: 20px">
        <el-select
@@ -1972,9 +1974,9 @@
          />
        </el-select>
      </div>
      <el-divider/>
      <el-divider />
      <div style="margin-bottom: 10px">
        <i class="el-icon-s-operation" style="color:#42b983;"/> 工序列表
        <i class="el-icon-s-operation" style="color:#42b983;" /> 工序列表
      </div>
      <div style="overflow-y: scroll">
        <el-table
@@ -2010,11 +2012,11 @@
          >
            <template slot-scope="{row}">
              <div v-if="row.enable==='Y'">
                <svg-icon icon-class="circleYes" style="margin-right: 2px"/>
                <svg-icon icon-class="circleYes" style="margin-right: 2px" />
                是
              </div>
              <div v-if="row.enable==='N'">
                <svg-icon icon-class="circleNo" style="margin-right: 2px"/>
                <svg-icon icon-class="circleNo" style="margin-right: 2px" />
                否
              </div>
            </template>
@@ -2034,8 +2036,8 @@
<script>
import Pagination from '@/components/Pagination'
import {handleDatetime, handleDatetime2, validateCode} from '@/utils/global'
import {getCookie} from '@/utils/auth'
import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global'
import { getCookie } from '@/utils/auth'
import QRCode from 'qrcodejs2'
import $ from 'jquery'
import elDragDialog from '@/directive/el-drag-dialog'
@@ -2047,18 +2049,18 @@
  MesOrderClosedSearch,
  UpdateMesOrderStepSearch, MesOrderBitchClosedSeave, MesOrderBitchReverseClosedSeave
} from '@/api/WorkOrder'
import {PartSelect} from '@/api/ProductModel'
import {PrentOrganization, PrentOrganizationNoCompany, StepData} from '@/api/GeneralBasicData'
import { PartSelect } from '@/api/ProductModel'
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
import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui
export default {
  name: 'WorkOrderClose',
  components: {
    Pagination, ElDragSelect
  },
  directives: {elDragDialog, waves},
  directives: { elDragDialog, waves },
  data() {
    return {
      mouseHoverType: 'mouseout',
@@ -2069,7 +2071,7 @@
      tableHeight: 0,
      username: '',
      form: {
        wkshopcode: '',
        wkshopcode: [],
        mesorderstus: '', // 工单状态码
        mesordercode: '', // 工单编号
        partcode: '', // 产品编码
@@ -2091,8 +2093,8 @@
        // { code: 'CREATED', name: '已关闭' }
        // { code: 'ALLO', name: '已派发' }
        // 已关闭:CLOSED  未关闭:NOCLOSED
        {code: 'NOCLOSED', name: '未关闭'},
        {code: 'CLOSED', name: '已关闭'}
        { code: 'NOCLOSED', name: '未关闭' },
        { code: 'CLOSED', name: '已关闭' }
        // { code: 'NOSCHED', name: '待排程' },
        // { code: 'SCHED', name: '已排程' }
      ],
@@ -2121,51 +2123,51 @@
        mesmaxqty: 0// 工单的最大值
      },
      ordertypeArr: [// 工单类型
        {code: 'PO', name: '标准工单'},
        {code: 'FO', name: '报废补单'}
        { code: 'PO', name: '标准工单' },
        { code: 'FO', name: '报废补单' }
      ],
      partArr: [], // 产品信息
      wkshopArr: [], // 生产车间数组
      routeArr: [], // 工艺路线数组
      orderlevArr: [
        {code: 1, name: '特级'},
        {code: 2, name: '紧急'},
        {code: 3, name: '正常'}
        { code: 1, name: '特级' },
        { code: 2, name: '紧急' },
        { code: 3, name: '正常' }
      ], // 工单等级数组
      operation: '',
      dialogFormRules: {
        mesorderstus: [
          {required: true, message: '请选择订单状态', trigger: ['blur', 'change']}
          { required: true, message: '请选择订单状态', trigger: ['blur', 'change'] }
        ],
        partcode: [
          {required: true, message: '请选择产品信息', trigger: ['blur', 'change']}
          { required: true, message: '请选择产品信息', trigger: ['blur', 'change'] }
        ],
        mesordercode: [
          {required: true, validator: validateCode, trigger: ['blur', 'change']}
          { required: true, validator: validateCode, trigger: ['blur', 'change'] }
        ],
        mesqty: [
          {required: true, message: '请输入工单数量', trigger: ['blur', 'change']}
          { required: true, message: '请输入工单数量', trigger: ['blur', 'change'] }
        ],
        wkshopcode: [
          {required: true, message: '请选择生产车间', trigger: ['blur', 'change']}
          { required: true, message: '请选择生产车间', trigger: ['blur', 'change'] }
        ],
        deliverydate: [
          {required: true, message: '请选择预计交付日期', trigger: ['blur', 'change']}
          { required: true, message: '请选择预计交付日期', trigger: ['blur', 'change'] }
        ],
        planstartdate: [
          {required: true, message: '请选择开始时间', trigger: ['blur', 'change']}
          { required: true, message: '请选择开始时间', trigger: ['blur', 'change'] }
        ],
        planenddate: [
          {required: true, message: '请选择结束时间', trigger: ['blur', 'change']}
          { required: true, message: '请选择结束时间', trigger: ['blur', 'change'] }
        ],
        orderlev: [
          {required: true, message: '请选择工单等级', trigger: ['blur', 'change']}
          { required: true, message: '请选择工单等级', trigger: ['blur', 'change'] }
        ],
        isAps: [
          {required: true, message: '请选择是否排程', trigger: ['blur', 'change']}
          { required: true, message: '请选择是否排程', trigger: ['blur', 'change'] }
        ],
        bomId: [
          {required: true, message: '请选择物料清单', trigger: ['blur', 'change']}
          { required: true, message: '请选择物料清单', trigger: ['blur', 'change'] }
        ]
      },
@@ -2275,9 +2277,9 @@
      tableDataDetail: [], // 点击工单表的行 显示详细信息
      printSize: 0,
      printSizeSelectArr: [// 宽*高
        {code: 0, name: '80*50'},
        {code: 1, name: '78*60'},
        {code: 2, name: '60*40'}
        { code: 0, name: '80*50' },
        { code: 1, name: '78*60' },
        { code: 2, name: '60*40' }
        // { code: 2, name: '50*60' },
        // { code: 3, name: '50*40' },
        // { code: 4, name: '50*80' },
@@ -2308,7 +2310,7 @@
  watch: {
    'stepSelectedValue': {
      // deep: true,
      handler: function (val) {
      handler: function(val) {
        // do something with the new and old value of stepSelectedValue
        console.log(val, 1)
        const arr = JSON.parse(JSON.stringify(this.stepTableData))
@@ -2347,7 +2349,7 @@
      const el = this.$refs.stepTableDataRef.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
      this.sortable = Sortable.create(el, {
        ghostClass: 'sortable-ghost', // Class name for the drop placeholder,
        setData: function (dataTransfer) {
        setData: function(dataTransfer) {
          // to avoid Firefox bug
          // Detail see : https://github.com/RubaXa/Sortable/issues/1012
          dataTransfer.setData('Text', '')
@@ -2363,7 +2365,7 @@
        }
      })
    },
    tableRowClassName({row, rowIndex}) {
    tableRowClassName({ row, rowIndex }) {
      return 'custom-row'
    },
    handleRequest() {
@@ -2375,7 +2377,7 @@
      })
    },
    async getPrentOrganizationNoCompany() {
      const {data: res} = await PrentOrganizationNoCompany()
      const { data: res } = await PrentOrganizationNoCompany()
      this.wkshopcodeArr = res
    },
    async getMesOrderClosedSearch() {
@@ -2385,7 +2387,7 @@
      // }
      const data = {
        wkshopcode: this.form.wkshopcode,
        wkshopcode: this.form.wkshopcode.join(','),
        mesorderstus: this.form.mesorderstus, // 工单状态码
        mesordercode: this.form.mesordercode, // 工单编号
        partcode: this.form.partcode, // 产品编码
@@ -2406,19 +2408,19 @@
      this.total = res.count
      // this.form.createdate = tempDate
      return {code: res.code}
      return { code: res.code }
    },
    async getSelect() {
      // 获取产品信息
      const {data: res1} = await PartSelect()
      const { data: res1 } = await PartSelect()
      this.partArr = res1
      // 获取组织
      const {data: res2} = await PrentOrganization()
      const { data: res2 } = await PrentOrganization()
      this.wkshopArr = res2
      // 获取工序
      const {data: res3} = await StepData()
      const { data: res3 } = await StepData()
      this.stepSelectArr = res3
    },
    // 订单状态改变时
@@ -2426,7 +2428,7 @@
      this.form.mesorderstus = val
    },
    // 排序改变时
    sortChange({column, prop, order}) {
    sortChange({ column, prop, order }) {
      if (order === 'descending') {
        order = 'desc'
      } else if (order === 'ascending') {
@@ -2438,7 +2440,7 @@
      this.form.prop = prop
      this.getMesOrderClosedSearch()
    },
    sourceSortChange({column, prop, order}) {
    sourceSortChange({ column, prop, order }) {
      if (order === 'descending') {
        order = 'desc'
      } else if (order === 'ascending') {
@@ -2457,7 +2459,7 @@
    // 重置
    reset(val) {
      this.form.wkshopcode = ''
      this.form.wkshopcode = []
      this.form.mesorderstus = ''
      this.form.mesordercode = ''
      this.form.partcode = ''
@@ -2472,7 +2474,7 @@
    },
    // 新增按钮
    async add(operation) {
      const {data: res} = await AddMesOrderCodeSearch()
      const { data: res } = await AddMesOrderCodeSearch()
      this.dialogForm.mesordercode = res
      this.operation = operation
      this.dialogVisible = true
@@ -2577,7 +2579,7 @@
        wocode: this.dialogForm.mesordercode,
        data_sources: this.dialogForm.data_sources
      }
      const {data: res} = await UpdateMesOrderStepSearch(data)
      const { data: res } = await UpdateMesOrderStepSearch(data)
      this.dialogForm.mesmaxqty = res.canupdate_qty
      this.stepTableData = res.stepdata
      // res.stepdata.forEach(i => {
@@ -2775,7 +2777,7 @@
        return this.$message.info('请先选择工艺路线!')
      }
      this.dialogVisibleSearch = true
      const {data: res} = await SelectRouteStep({routecode: this.dialogForm.routecode})
      const { data: res } = await SelectRouteStep({ routecode: this.dialogForm.routecode })
      this.searchTableData = res
    },
    dialogVisibleSearchBack() {
@@ -2930,7 +2932,7 @@
    },
    // 补打生产入库条码
    async getProductInHouseLabCode(ordercode) {
      const res = await ProductInHouseLabCode({ordercode})
      const res = await ProductInHouseLabCode({ ordercode })
      console.log(res)
      this.isLastPrint = true
@@ -3091,7 +3093,7 @@
      this.dialogFormRoute.projectCode = row.partcode
      this.dialogFormRoute.projectName = row.partname
      this.dialogVisibleRoute = true
      const {data: res} = await InventoryFileAssociationRoute({partcode: this.dialogFormRoute.projectCode})
      const { data: res } = await InventoryFileAssociationRoute({ partcode: this.dialogFormRoute.projectCode })
      this.dialogFormRoute.routeOperationArr = res
      this.dialogFormRoute.routeOperationArr.forEach((item, index) => {
@@ -3133,7 +3135,7 @@
      const data = []
      this.dialogFormRoute.routeOperationArr.forEach(item => {
        if (item.isSelected2) {
          data.push({code: item.code, name: item.name})
          data.push({ code: item.code, name: item.name })
        }
      })
@@ -3176,7 +3178,7 @@
        wocode: row.wo_code,
        data_sources: row.data_sources
      }
      const {data: res} = await UpdateMesOrderStepSearch(data)
      const { data: res } = await UpdateMesOrderStepSearch(data)
      this.tableDataDetail = res.stepdata
    },
    // 工序删除
@@ -3197,10 +3199,10 @@
    },
    printMe2StylePadding(val) {
      if (val === 0) {
        return {paddingLeft: '10px', paddingTop: '5px'}
        return { paddingLeft: '10px', paddingTop: '5px' }
      }
      if (val === 5) {
        return {paddingLeft: '15px', paddingTop: '7px'}
        return { paddingLeft: '15px', paddingTop: '7px' }
      }
    },
src/views/workOrder/workOrderList.vue
@@ -5,21 +5,21 @@
      <div
        class="bodyTopStatus"
      >
        <div style="font-weight: bolder;">工单状态</div>
        <div class="statusItem" :class="{statusItemLight:form.mesorderstus===''}" @click="statusChange('')">全部</div>
        <div class="statusItem" :class="{statusItemLight:form.mesorderstus==='NEW'}" @click="statusChange('NEW')">新订单</div>
        <div class="statusItem" :class="{statusItemLight:form.mesorderstus==='ALLO'}" @click="statusChange('ALLO')">已派发</div>
        <div class="statusItem" :class="{statusItemLight:form.mesorderstus==='START'}" @click="statusChange('START')">开工</div>
        <div class="statusItem" :class="{statusItemLight:form.mesorderstus==='CLOSED'}" @click="statusChange('CLOSED')">完工</div>
        <div style="font-weight: bolder;">工单状态:</div>
        <div class="statusItem" :class="{statusItemLight:true}" @click="statusChange('')">全部</div>
        <div class="statusItem" :class="{statusItemLight1:true}" @click="statusChange('NEW')">新订单</div>
        <div class="statusItem" :class="{statusItemLight2:true}" @click="statusChange('ALLO')">已派发</div>
        <div class="statusItem" :class="{statusItemLight3:true}" @click="statusChange('START')">开工</div>
        <div class="statusItem" :class="{statusItemLight4:true}" @click="statusChange('CLOSED')">完工</div>
      </div>
      <div class="bodyTopButtonGroup" style="justify-content: space-between;margin-top: 5px;">
        <div style="display: flex">
          <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">新增</el-button>
          <el-button v-waves type="success" icon="el-icon-connection" @click="send">派发</el-button>
          <el-button v-waves type="success" icon="el-icon-connection" @click="send();tableDataDetail=[]">派发</el-button>
        </div>
        <el-button v-waves type="primary" @click="batchUpdate"><i
        <el-button v-waves type="primary" @click="batchUpdate();tableDataDetail=[]"><i
          class="el-icon-edit"
          style="margin-right: 0;"
        /> 批量绑定
@@ -39,6 +39,8 @@
              <el-select
                v-model="form.wkshopcode"
                filterable
                multiple
                collapse-tags
                :popper-append-to-body="false"
                style="width: 200px"
                placeholder="请选择"
@@ -119,8 +121,8 @@
            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="search">查询</el-button>
            <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">重置</el-button>
            <el-button v-waves type="primary" icon="el-icon-search" @click="search();tableDataDetail=[]">查询</el-button>
            <el-button v-waves type="info" icon="el-icon-refresh" @click="reset();tableDataDetail=[]">重置</el-button>
          </div>
        </el-form>
@@ -152,7 +154,7 @@
          border
          :summary-method="getSummaries"
          show-summary
          :row-class-name="tableRowClassName"
          :row-class-name="tableRowClassName2"
          :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px'}"
          highlight-current-row
          :header-cell-style="this.$headerCellStyle"
@@ -165,12 +167,14 @@
            type="selection"
            width="50"
            :selectable="selected"
            class-name="fixed-column"
          />
          <el-table-column
            prop="rowNum"
            width="50"
            width="80"
            label="序号"
            fixed
            class-name="fixed-column"
          />
          <el-table-column
            prop="status"
@@ -462,6 +466,7 @@
            label="操作"
            width="160"
            fixed="right"
            class-name="fixed-column"
          >
            <template slot-scope="{row}">
              <div class="operationClass">
@@ -471,7 +476,7 @@
                    v-if="mesSetting.workOrder"
                    class="el-icon-files"
                    style="cursor: pointer;color:#42b983;margin-right: 15px"
                    @click="pre(row,1)"
                    @click.stop="pre(row,1)"
                  />
                </el-tooltip>
@@ -479,12 +484,12 @@
                  <i
                    class="el-icon-edit-outline"
                    :style="{color:$store.state.settings.theme}"
                    @click="edit('edit',row)"
                    @click.stop="edit('edit',row)"
                  />
                </el-tooltip>
                <el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top">
                  <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click="del(row)" />
                  <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click.stop="del(row)" />
                </el-tooltip>
                <el-tooltip class="item" effect="dark" content="打印工单" placement="top">
@@ -497,7 +502,7 @@
                    :style="{color:$store.state.settings.theme}"
                    class="el-icon-printer"
                    style="cursor: pointer;margin-right: 15px"
                    @click="handlePrint(row.wo_code,row.saleOrderCod,row)"
                    @click.stop="handlePrint(row.wo_code,row.saleOrderCod,row)"
                  />
                </el-tooltip>
@@ -506,7 +511,7 @@
                    class="el-icon-view"
                    style="cursor: pointer;"
                    :style="{color:$store.state.settings.theme}"
                    @click="edit('view',row)"
                    @click.stop="edit('view',row)"
                  />
                </el-tooltip>
@@ -523,7 +528,7 @@
        align="right"
        layout="total,prev, pager, next,sizes,jumper"
        popper-class="select_bottom"
        @pagination="getMesOrderSearch"
        @pagination="getMesOrderSearch();tableDataDetail=[]"
      />
      <div class="elTableDiv">
@@ -753,6 +758,7 @@
            v-model="dialogForm.mesqty"
            oninput="value=value.replace(/[^\d]/g,'')"
            style="width: 200px"
            @input="mesqtyInputChange"
          />
          <!--          oninput="value=value.replace(/[^0-9*.{1}0-9*]/g,'')"-->
        </el-form-item>
@@ -886,6 +892,7 @@
            class="stepSelectedValueClass"
            style="width: 930px;"
            multiple
            filterable
            placeholder="请选择相对应工序"
            @change="stepSelectedValueChange"
          >
@@ -2600,6 +2607,7 @@
              class="stepSelectedValueClass"
              style="width: 930px;"
              multiple
              filterable
              placeholder="请选择相对应工序"
              @change="val=>stepSelectedValueChangeBatchUpdate(val,index)"
            >
@@ -2762,7 +2770,7 @@
      tableHeight: 0,
      username: '',
      form: {
        wkshopcode: '', // 车间编码
        wkshopcode: [], // 车间编码
        mesorderstus: '', // 工单状态码
        mesordercode: '', // 工单编号
        partcode: '', // 产品编码
@@ -3083,7 +3091,15 @@
    // })
  },
  methods: {
    mesqtyInputChange(val) {
      if (this.stepTableData && this.stepTableData.length > 0) {
        this.stepTableData.forEach(i => {
          i.sumqty = Math.floor(parseFloat(val) * (1 + (parseFloat(i.ratio) / 100)))
        })
      }
    },
    statusChange(val) {
      this.tableDataDetail = []
      this.form.mesorderstus = val
      this.getMesOrderSearch()
    },
@@ -3480,6 +3496,20 @@
    tableRowClassName({ row, rowIndex }) {
      return 'custom-row'
    },
    tableRowClassName2({ row, rowIndex }) {
      if (row.status === 'NEW') {
        return 'custom-row1'
      }
      if (row.status === 'ALLO') {
        return 'custom-row2'
      }
      if (row.status === 'START') {
        return 'custom-row3'
      }
      if (row.status === 'CLOSED') {
        return 'custom-row4'
      }
    },
    handleRequest() {
      this.getMesOrderSearch().then(res => {
        if (res.code === '200') {
@@ -3499,7 +3529,7 @@
      // }
      const data = {
        wkshopcode: this.form.wkshopcode,
        wkshopcode: this.form.wkshopcode.join(','),
        mesorderstus: this.form.mesorderstus, // 工单状态码
        mesordercode: this.form.mesordercode, // 工单编号
        partcode: this.form.partcode, // 产品编码
@@ -3573,7 +3603,7 @@
    // 重置
    reset(val) {
      this.form.wkshopcode = ''
      this.form.wkshopcode = []
      this.form.mesorderstus = ''
      this.form.mesordercode = ''
      this.form.partcode = ''
@@ -3672,6 +3702,7 @@
            if (this.form.page > 1 && this.tableData.length === 1) {
              this.form.page--
            }
            this.tableDataDetail = []
            this.getMesOrderSearch()
          }
        })
@@ -3983,7 +4014,7 @@
              return this.$message.error('有序报工情况下,超报比例后道工序不能大于前道工序!')
            }
          }
          console.log(isNaN(this.dialogForm.mesqty - this.dialogForm.mesqtyinit))
          // console.log(isNaN(this.dialogForm.mesqty - this.dialogForm.mesqtyinit))
          const data = {
            wostatus: this.dialogForm.mesorderstus, // 工单状态
            wocode: this.dialogForm.mesordercode, // 工单号
@@ -4010,6 +4041,7 @@
              // this.handlePrint()
              this.$message.success(this.operation === 'add' ? '添加成功!' : '保存成功!')
              this.getMesOrderSearch()
              this.tableDataDetail = []
              this.$store.state.app.buttonIsDisabled = false
            } else {
              this.$message.error(this.operation === 'add' ? '添加失败!' : '保存失败!')
@@ -4573,7 +4605,7 @@
    getSummaries(param) {
      const { columns, data } = param
      const sums = []
      const i = 9
      const i = 13
      columns.forEach((column, index) => {
        if (index === i) {
          sums[index] = '总数'
@@ -4940,7 +4972,25 @@
.statusItemLight{
  font-weight: bolder;
  color: #42b983;
  //color: #42b983;
  color: #000;
}
.statusItemLight1{
  font-weight: bolder;
  color: rgba(245, 108, 108, 1);
}
.statusItemLight2{
  font-weight: bolder;
  color: rgba(230, 162, 60, 1);
}
.statusItemLight3{
  font-weight: bolder;
  color: rgba(144, 147, 153, 1);
}
.statusItemLight4{
  font-weight: bolder;
  color: rgba(103, 194, 58, 1);
}
</style>
@@ -4949,6 +4999,27 @@
.el-table .custom-row {
  background: #f8f8fa;
}
.el-table .custom-row1 {
  background: rgba(245, 108, 108, 0.4);
}
.el-table .custom-row2 {
  background: rgba(230, 162, 60, 0.4);
}
.el-table .custom-row3 {
  background: rgba(144, 147, 153, 0.4);
}
.el-table .custom-row4 {
  background: rgba(103, 194, 58, 0.4);
}
.el-table .fixed-column {
  background: #f8f8fa;
}
</style>
<style>
.sortable-ghost {
src/views/workOrder/workOrderSend.vue
@@ -24,6 +24,8 @@
              <el-select
                v-model="form.wkshopcode"
                filterable
                multiple
                collapse-tags
                :popper-append-to-body="false"
                style="width: 200px"
                placeholder="请选择"
@@ -265,66 +267,66 @@
            show-tooltip-when-overflow
            width="100"
          />
<!--          <el-table-column-->
<!--            prop="priuserdefnvc1"-->
<!--            label="客户名称"-->
<!--            width="110"-->
<!--            sortable="custom"-->
<!--          >-->
<!--            <template slot-scope="{row}">-->
<!--              {{ row.priuserdefnvc1 ? row.priuserdefnvc1 : '/' }}-->
<!--            </template>-->
<!--          </el-table-column>-->
<!--          <el-table-column-->
<!--            prop="priuserdefnvc6"-->
<!--            label="客户编码"-->
<!--            width="110"-->
<!--            sortable="custom"-->
<!--          >-->
<!--            <template slot-scope="{row}">-->
<!--              {{ row.priuserdefnvc6 ? row.priuserdefnvc6 : '/' }}-->
<!--            </template>-->
<!--          </el-table-column>-->
<!--          <el-table-column-->
<!--            prop="priuserdefnvc2"-->
<!--            label="对内名称"-->
<!--            width="110"-->
<!--            sortable="custom"-->
<!--          >-->
<!--            <template slot-scope="{row}">-->
<!--              {{ row.priuserdefnvc2 ? row.priuserdefnvc2 : '/' }}-->
<!--            </template>-->
<!--          </el-table-column>-->
<!--          <el-table-column-->
<!--            prop="priuserdefnvc3"-->
<!--            label="CTP日期"-->
<!--            width="110"-->
<!--            sortable="custom"-->
<!--          >-->
<!--            <template slot-scope="{row}">-->
<!--              {{ row.priuserdefnvc3 ? row.priuserdefnvc3 : '/' }}-->
<!--            </template>-->
<!--          </el-table-column>-->
<!--          <el-table-column-->
<!--            prop="priuserdefnvc4"-->
<!--            label="钢刀编号"-->
<!--            width="110"-->
<!--            sortable="custom"-->
<!--          >-->
<!--            <template slot-scope="{row}">-->
<!--              {{ row.priuserdefnvc4 ? row.priuserdefnvc4 : '/' }}-->
<!--            </template>-->
<!--          </el-table-column>-->
<!--          <el-table-column-->
<!--            prop="priuserdefnvc5"-->
<!--            label="盒型"-->
<!--            width="110"-->
<!--            sortable="custom"-->
<!--          >-->
<!--            <template slot-scope="{row}">-->
<!--              {{ row.priuserdefnvc5 ? row.priuserdefnvc5 : '/' }}-->
<!--            </template>-->
<!--          </el-table-column>-->
          <!--          <el-table-column-->
          <!--            prop="priuserdefnvc1"-->
          <!--            label="客户名称"-->
          <!--            width="110"-->
          <!--            sortable="custom"-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              {{ row.priuserdefnvc1 ? row.priuserdefnvc1 : '/' }}-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <!--          <el-table-column-->
          <!--            prop="priuserdefnvc6"-->
          <!--            label="客户编码"-->
          <!--            width="110"-->
          <!--            sortable="custom"-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              {{ row.priuserdefnvc6 ? row.priuserdefnvc6 : '/' }}-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <!--          <el-table-column-->
          <!--            prop="priuserdefnvc2"-->
          <!--            label="对内名称"-->
          <!--            width="110"-->
          <!--            sortable="custom"-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              {{ row.priuserdefnvc2 ? row.priuserdefnvc2 : '/' }}-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <!--          <el-table-column-->
          <!--            prop="priuserdefnvc3"-->
          <!--            label="CTP日期"-->
          <!--            width="110"-->
          <!--            sortable="custom"-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              {{ row.priuserdefnvc3 ? row.priuserdefnvc3 : '/' }}-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <!--          <el-table-column-->
          <!--            prop="priuserdefnvc4"-->
          <!--            label="钢刀编号"-->
          <!--            width="110"-->
          <!--            sortable="custom"-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              {{ row.priuserdefnvc4 ? row.priuserdefnvc4 : '/' }}-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <!--          <el-table-column-->
          <!--            prop="priuserdefnvc5"-->
          <!--            label="盒型"-->
          <!--            width="110"-->
          <!--            sortable="custom"-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              {{ row.priuserdefnvc5 ? row.priuserdefnvc5 : '/' }}-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <el-table-column
            prop="wkshp_name"
            label="生产车间"
@@ -2058,7 +2060,7 @@
      tableHeight: 0,
      username: '',
      form: {
        wkshopcode: '',
        wkshopcode: [],
        mesorderstus: 'ALLO', // 工单状态码
        mesordercode: '', // 工单编号
        partcode: '', // 产品编码
@@ -2373,7 +2375,7 @@
      // }
      const data = {
        wkshopcode: this.form.wkshopcode, //
        wkshopcode: this.form.wkshopcode.join(','), //
        mesorderstus: this.form.mesorderstus, // 工单状态码
        mesordercode: this.form.mesordercode, // 工单编号
        partcode: this.form.partcode, // 产品编码
@@ -2445,7 +2447,7 @@
    // 重置
    reset(val) {
      this.form.wkshopcode = ''
      this.form.wkshopcode = []
      this.form.mesorderstus = 'ALLO'
      this.form.mesordercode = ''
      this.form.partcode = ''