loulijun2021
2022-07-11 9b825939b7f0a7439d704b379812362dd95697fc
src/views/scgl/sckbg.vue
@@ -8,10 +8,10 @@
            <div style="display: flex;align-items: center">
              <div style="width: 70px">工序码:</div>
              <el-input
                v-model="produceCode"
                oninput="value=value.replace(/[^0-9a-zA-Z;]/g,'')"
                v-model="form.orderstepqrcode"
                oninput="value=value.replace(/[^0-9a-zA-Z;_]/g,'')"
                name="produceCode"
                style="width: 500px"
                style="width: 300px"
                @keyup.enter.native="val=>enterNative(val,'produceCode')"
              />
            </div>
@@ -30,7 +30,7 @@
          <div class="elTableDiv">
            <el-table
              :data="tableData"
              :height="tableHeight"
              :height="tableHeight+'px'"
              border
              stripe
              :style="{width: 100+'%',height:tableHeight+'px',}"
@@ -39,18 +39,19 @@
              :cell-style="this.$cellStyle"
              @sort-change="sortChange"
            >
              <!--              <el-table-column-->
              <!--                width="50"-->
              <!--              >-->
              <!--                <template slot-scope="{row}">-->
              <!--                  &lt;!&ndash;                  <el-radio&ndash;&gt;-->
              <!--                  &lt;!&ndash;                    v-model="radioSelected"&ndash;&gt;-->
              <!--                  &lt;!&ndash;                    :label="row.wo"&ndash;&gt;-->
              <!--                  &lt;!&ndash;                    style="color: #fff;padding-left: 10px; margin-right: -25px;"&ndash;&gt;-->
              <!--                  &lt;!&ndash;                    @change.native="getCurrentRow(row.wo)"&ndash;&gt;-->
              <!--                  &lt;!&ndash;                  />&ndash;&gt;-->
              <!--                </template>-->
              <!--              </el-table-column>-->
              <el-table-column
                width="50"
                fixed
              >
                <template slot-scope="{row}">
                  <el-radio
                    v-model="radioSelected"
                    :label="row.wo"
                    style="color: #fff;padding-left: 10px; margin-right: -25px;"
                    @change.native="getCurrentRow(row.wo)"
                  />
                </template>
              </el-table-column>
              <el-table-column
                prop="RowNum"
                width="50"
@@ -153,12 +154,26 @@
        <el-tab-pane label="外协列表">
          <div style="margin-left: 10px;margin-top:10px;display: flex;justify-content: space-between">
            <div style="display: flex;align-items: center">
              <div style="width: 70px">工序码:</div>
              <div style="width: 90px;">外协类型:</div>
              <el-select
                v-model="WXSelected"
                filterable
                style="width: 200px"
                placeholder="请选择"
              >
                <el-option
                  v-for="item in WXSelectArr"
                  :key="item.code"
                  :label="item.name"
                  :value="item.code"
                />
              </el-select>
              <div style="width: 70px;margin-left: 20px">工序码:</div>
              <el-input
                v-model="WXproduceCode"
                oninput="value=value.replace(/[^0-9a-zA-Z;]/g,'')"
                v-model="WXform.orderstepqrcode"
                oninput="value=value.replace(/[^0-9a-zA-Z;_]/g,'')"
                name="WXproduceCode"
                style="width: 500px"
                style="width: 300px"
                @keyup.enter.native="val=>enterNative(val,'WXproduceCode')"
              />
            </div>
@@ -177,27 +192,28 @@
          <div class="elTableDiv">
            <el-table
              :data="WXtableData"
              :height="tableHeight"
              :height="tableHeight+'px'"
              border
              stripe
              :style="{width: 100+'%',height:tableHeight+'px',}"
              highlight-current-row
              :header-cell-style="this.$headerCellStyle"
              :cell-style="this.$cellStyle"
              @sort-change="sortChange"
              @sort-change="WXsortChange"
            >
              <!--              <el-table-column-->
              <!--                width="50"-->
              <!--              >-->
              <!--                <template slot-scope="{row}">-->
              <!--                  &lt;!&ndash;                  <el-radio&ndash;&gt;-->
              <!--                  &lt;!&ndash;                    v-model="radioSelected"&ndash;&gt;-->
              <!--                  &lt;!&ndash;                    :label="row.wo"&ndash;&gt;-->
              <!--                  &lt;!&ndash;                    style="color: #fff;padding-left: 10px; margin-right: -25px;"&ndash;&gt;-->
              <!--                  &lt;!&ndash;                    @change.native="getCurrentRow(row.wo)"&ndash;&gt;-->
              <!--                  &lt;!&ndash;                  />&ndash;&gt;-->
              <!--                </template>-->
              <!--              </el-table-column>-->
              <el-table-column
                width="50"
                fixed
              >
                <template slot-scope="{row}">
                  <el-radio
                    v-model="radioSelected"
                    :label="row.wo_code"
                    style="color: #fff;padding-left: 10px; margin-right: -25px;"
                    @change.native="getWXCurrentRow(row.wo_code)"
                  />
                </template>
              </el-table-column>
              <el-table-column
                prop="RowNum"
                width="50"
@@ -235,8 +251,8 @@
                width="150"
              />
              <el-table-column
                prop="seq"
                width="80"
                prop="stepname"
                width="100"
                label="工序"
                sortable="custom"
              />
@@ -317,29 +333,29 @@
          <div style="width: 200px">{{ dialogForm.wo_code }}</div>
        </el-form-item>
        <el-form-item label="产品编码:">
          <div style="width: 200px">427100</div>
          <div style="width: 200px">{{ dialogForm.partcode }}</div>
        </el-form-item>
        <el-form-item label="产品名称:">
          <div style="width: 200px">机箱板底</div>
          <div style="width: 200px">{{ dialogForm.partname }}</div>
        </el-form-item>
        <el-form-item label="产品规格:">
          <div style="width: 200px">机箱底板&1</div>
          <div style="width: 200px">{{ dialogForm.partspec }}</div>
        </el-form-item>
        <el-form-item label="当前工序:">
          <div style="width: 200px">激光切割</div>
          <div style="width: 200px">{{ dialogForm.stepname }}</div>
        </el-form-item>
        <el-form-item label="工序描述:">
          <el-tooltip class="item" effect="dark" content="原材料切按材料切按材料切按时打卡数据的卡" placement="top-start">
            <div style="width: 200px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;">
              原材料切按材料切按材料切按时打卡数据的卡
            </div>
          </el-tooltip>
          <!--          <el-tooltip   class="item" effect="dark" content="原材料切按材料切按材料切按时打卡数据的卡" placement="top-start">-->
          <div style="width: 200px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;">
            {{ dialogForm.stepdesc }}
          </div>
          <!--          </el-tooltip>-->
        </el-form-item>
        <el-form-item label="任务数量:">
          <div style="width: 200px">1000</div>
          <div style="width: 200px">{{ dialogForm.planqty }}</div>
        </el-form-item>
        <el-form-item label="未报/已报:">
          <div style="width: 200px">900/100</div>
        <el-form-item :label="dialogTitle==='自制开始'||dialogTitle==='自制报工'?'未报/已报:':'未发/已发:'">
          <div style="width: 200px">{{ dialogForm.noreportqty }}/{{ dialogForm.reportqty }}</div>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制开始'" label="开工数量:">
@@ -582,10 +598,11 @@
import {
  MesOrderGroupSelectUser,
  MesOrderStepReportSelectUserGroup,
  MesOrderStepSearch,
  MesOrderStepSearch, MesOrderStepStart,
  MesOrderStepStartSelectEqp,
  MesOrderWxStepSearch
} from '@/api/scgl'
import { MesOrderStepSelectWX } from '@/api/sbgl'
const SER_HZ = /^[\u4e00-\u9fa5]+$/
export default {
@@ -617,6 +634,8 @@
      tableHeight: 0,
      produceCode: '', // 工序码
      WXproduceCode: '', // 外协工序码
      radioSelected: '', // 工序选中
      WXradioSelected: '', // 工序选中
      form: {
        orderstepqrcode: 'PO202206280001_4;Step01', // 扫描的二维码信息
        prop: 'wo', // 排序字段
@@ -627,6 +646,7 @@
      total: 10,
      tableData: [],
      WXform: { // 外协表单
        // PO202206280001_4;Step01
        orderstepqrcode: 'PO202206280001_4;Step01', // 扫描的二维码信息
        prop: 'wo_code', // 排序字段
        order: 'asc', // 排序字段
@@ -636,6 +656,15 @@
      WXtotal: 10, // 外协表单总数
      WXtableData: [], // 外协表
      WXSelectArr: [// 外协类型下拉列表
        { code: 'OUT', name: '发料' },
        { code: 'IN', name: '收料' }
      ],
      WXSelected: 'OUT', // 外协下拉列表选中值
      judgeIsDialog: false, // 判断是否自动弹窗
      judgeIsDialogNumber: false, // 判断弹哪个窗
      dialogVisible: false,
      dialogTitle: '', // 自制开始、自制报工、外协发料、外协收料
      dialogForm: {
@@ -643,12 +672,21 @@
        partcode: '', // 产品编码
        partname: '', // 产品名称
        partspec: '', // 产品规格
        currentstep: '', // 当前工序
        nextstep: '', // 下一道工序
        desr: '', // 工序描述
        plan_qty: '', // 任务数量
        report_qty: '', // 已报数量
        noreport_qty: '' // 未报数量
        stepname: '', // 当前工序名
        nextstepname: '', // 下一道工序名
        stepdesc: '', // 工序描述
        planqty: '', // 任务数量
        reportqty: '', // 已报数量
        noreportqty: '', // 未报数量
        startqty: '' // 发料数量
        // eqpcode: '', // 设备编码
        // usergroupcode: '', // 班组编码
        // reportuser: '', // 报工人员
        // taskqty: '', // 任务数量
        // startqty: '', // 开工数量
        // reportqty: '', // 报工数量
        // ngqty: '' // 不良数量
      },
      userTableData: [
@@ -678,7 +716,8 @@
    }
  },
  created() {
    this.getMesOrderStepSearch()
    // this.getMesOrderStepSearch()
    this.tabClick()
  },
  mounted() {
    window.addEventListener('resize', this.getHeight)
@@ -691,13 +730,16 @@
  methods: {
    async getMesOrderStepSearch() {
      const res = await MesOrderStepSearch(this.form)
      this.tableData = res.data
      this.total = res.count
      if (res.code === '200') {
        this.tableData = res.data
        this.total = res.count
      }
    },
    async MesOrderWxStepSearch() {
    async getMesOrderWxStepSearch() {
      const res = await MesOrderWxStepSearch(this.WXform)
      this.WXtableData = res.data
      this.WXtotal = res.count
      if (res.code === '200') {
        this.WXtableData = res.data
      }
    },
    // 排序改变时
    sortChange({ column, prop, order }) {
@@ -712,29 +754,52 @@
      this.form.prop = prop
      this.getMesOrderStepSearch()
    },
    getCurrentRow() {
    // WX排序改变时
    WXsortChange({ column, prop, order }) {
      if (order === 'descending') {
        order = 'desc'
      } else if (order === 'ascending') {
        order = 'asc'
      } else {
        order = 'desc'
      }
      this.WXform.order = order
      this.WXform.prop = prop
      this.getMesOrderWxStepSearch()
    },
    // 自制页签原点点击
    getCurrentRow(val) {
    },
    // 外协页签原点点击
    getWXCurrentRow(val) {
      console.log(val)
      this.WXradioSelected = val
    },
    // tab按钮切换鼠标自动聚焦
    tabClick(val, d) {
      console.log(val, d, 1)
      if (this.$refs.elTabs.currentName === '0') {
        this.getMesOrderStepSearch()
        this.$nextTick(() => {
          $("input[name='produceCode']")[0].focus()
        })
      }
      if (this.$refs.elTabs.currentName === '1') {
        this.MesOrderWxStepSearch()
        this.$nextTick(() => {
          $("input[name='WXproduceCode']")[0].focus()
        })
      }
    },
    // 扫码键盘回车事件
    async   enterNative(val, belong) {
      console.log(val, belong)
      // 开工:code="200"  count=0
      // 报工:code="200"  count=1
      // 发料:code="200"  count=2
      // 收料:code="200"  count=3
      // 走列表形式 code="200"  count=4
      if (belong === 'produceCode') {
        this.ZZreport()
        // this.ZZreport()
        // 查找设备
        // const {data:res} = await MesOrderStepStartSelectEqp({ orderstepqrcode: this.produceCode })
        // this.xxx=res
@@ -742,7 +807,15 @@
        // const { data: res2 } = await MesOrderStepReportSelectUserGroup()
      }
      if (belong === 'WXproduceCode') {
        const data = {
          OperType: 'WX',
          orderstepqrcode: this.WXform.orderstepqrcode,
          SelectType: this.WXSelected// OUT、IN
        }
        const res = await MesOrderStepStart(data)
        if (res.code === '200' && res.count === 2) {
          this.WXsend(res.data)
        }
      }
    },
    // 查询
@@ -765,13 +838,29 @@
      this.getUserTableData()
    },
    // 外协发料
    async  WXsend() {
    async  WXsend(obj) {
      if (this.WXradioSelected.length < 1 && obj.length < 1) {
        return this.$message.info('请先选择工序!')
      }
      this.dialogTitle = '外协发料'
      this.dialogVisibleTrue()
      // this.dialogVisible = true
      this.dialogVisible = true
      console.log(obj, 321)
      this.dialogForm.wo_code = obj.wo_code
      this.dialogForm.partcode = obj.partnumber
      this.dialogForm.partname = obj.partname
      this.dialogForm.partspec = obj.partspec
      this.dialogForm.stepname = obj.stepname
      this.dialogForm.stepdesc = obj.stepdesc
      this.dialogForm.planqty = obj.planqty
      this.dialogForm.reportqty = obj.reportqty
      this.dialogForm.noreportqty = obj.noreportqty
      this.dialogForm.startqty = obj.startqty
      // const { data: res } = await MesOrderStepReportSelectUserGroup()
      // this.xx = res
      // const data = {
      //
      // }
      // const res = await MesOrderStepSelectWX(data)
      // console.log(res)
    },
    // 外协收料
    WXback() {
@@ -780,7 +869,7 @@
      // this.dialogVisible = true
    },
    dialogVisibleTrue() {
      this.dialogVisible = true
      // this.dialogVisible = true
      // this.dialogForm.wo_code=
    },
    // 报工查询用户表
@@ -1051,12 +1140,16 @@
  border-color: $main_color;
}
.dialogVisible{
//.dialogVisible{
  ::v-deep .el-select .el-input .el-select__caret  {
    display: flex;
    align-items: center;
    justify-content: center;
  }
//}
.elTableDiv {
  ::v-deep .el-radio__label {
    display: none;
  }
}
</style>