loulijun2021
2022-09-07 ef9633e0d1689fd8869170f3aa0af6c90c2e5e7f
src/views/scgl/gd.vue
@@ -57,28 +57,21 @@
                  :label="item.name"
                  :value="item.code"
                />
              </el-select>            </el-form-item>
              </el-select>
            </el-form-item>
            <el-form-item label="产品编码" style=" display: flex;">
              <!--              <el-select v-model="form.partcode" :popper-append-to-body="false" style="width: 200px" placeholder="请选择">-->
              <!--                <el-option-->
              <!--                  v-for="item in OrgTypeArr"-->
              <!--                  :key="item.code"-->
              <!--                  :label="item.name"-->
              <!--                  :value="item.code"-->
              <!--                />-->
              <!--              </el-select>-->
              <el-input v-model="form.partcode" 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.partname" 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.partspec" 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.creatuser" 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-date-picker-->
              <!--                v-model="form.createdate"-->
              <!--                type="daterange"-->
@@ -99,7 +92,7 @@
              />
            </el-form-item>
          </div>
          <div style="min-height: 100px">
          <div>
            <div style="display: flex;align-items: start;justify-content:end;margin-top: 5px;z-index: 2">
              <el-button type="primary" icon="el-icon-search" @click="search">查询</el-button>
              <el-button type="info" icon="el-icon-refresh" @click="reset">重置</el-button>
@@ -121,17 +114,27 @@
        </el-form>
      </div>
      <div class="elTableDiv">
      <div
        class="bodyTopFormExpand"
        @click="isExpandForm=!isExpandForm"
      >
        <i
          :class="!isExpandForm?'el-icon-arrow-down':'el-icon-arrow-up'"
          :style="{color:'#42B983'}"
        /></div>
      <div class="elTableDiv" style="margin-top: 0">
        <el-table
          :data="tableData"
          :height="tableHeight+'px'"
          :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
          border
          :row-class-name="tableRowClassName"
          :style="{width: 100+'%',height:tableHeight+'px',}"
          :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px'}"
          highlight-current-row
          :header-cell-style="this.$headerCellStyle"
          :cell-style="this.$cellStyle"
          @sort-change="sortChange"
          @row-click="rowClick"
        >
          <!--          <el-table-column-->
          <!--            type="selection"-->
@@ -240,7 +243,7 @@
            label="工艺路线"
            show-tooltip-when-overflow
            sortable="custom"
            min-width="140"
            width="180"
          >
            <template slot-scope="{row}">
              <div v-if="row.route_name">{{ row.route_name }}</div>
@@ -311,11 +314,16 @@
          >
            <template slot-scope="{row}">
              <div class="operationClass">
                <el-tooltip class="item" effect="dark" content="工序任务" placement="top">
                <el-tooltip class="item" effect="dark" content="打印工单" placement="top">
                  <!--                  <i-->
                  <!--                    class="el-icon-tickets"-->
                  <!--                    style="cursor: pointer;color: #42b983;margin-right: 15px"-->
                  <!--                    @click="check(row)"-->
                  <!--                  />-->
                  <i
                    class="el-icon-tickets"
                    style="cursor: pointer;color: #42b983;margin-right: 15px"
                    @click="check(row)"
                    @click="handlePrint(row.wo_code)"
                  />
                </el-tooltip>
                <el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top">
@@ -336,6 +344,81 @@
        popper-class="select_bottom"
        @pagination="getMesOrderSearch"
      />
      <div class="elTableDiv">
        <el-table
          :data="tableDataDetail"
          border
          height="161px"
          :row-class-name="tableRowClassName"
          highlight-current-row
          :header-cell-style="this.$headerCellStyle"
          :cell-style="this.$cellStyle"
        >
          <!--          <el-table-column-->
          <!--            width="50"-->
          <!--            type="index"-->
          <!--            prop="序号"-->
          <!--            fixed-->
          <!--          />   -->
          <el-table-column
            width="50"
            prop="seq"
            label="序号"
            fixed
          />
          <el-table-column
            prop="wo_code"
            label="工单编号"
          />
          <el-table-column
            prop="partcode"
            label="产品编码"
          />
          <el-table-column
            prop="partname"
            label="产品名称"
          />
          <el-table-column
            label="工序编码"
            prop="partcode"
          />
          <el-table-column
            label="工序名称"
            prop="partname"
          />
          <el-table-column
            label="任务数量"
            prop="plan_qty"
          />
          <el-table-column
            label="合格数量"
            prop="good_qty"
          />
          <el-table-column
            label="不良数量"
            prop="ng_qty"
          />
          <el-table-column
            label="操作"
            width="120"
          >
            <template slot-scope="{row}">
              <div class="operationClass">
                <el-tooltip class="item" effect="dark" content="打印工序" placement="top">
                  <i
                    class="el-icon-tickets"
                    style="cursor: pointer;color: #42b983;margin-right: 15px"
                    @click="supplementSmallClick(row)"
                  />
                </el-tooltip>
              </div>
            </template>
          </el-table-column>
        </el-table>
      </div>
    </div>
    <!--新增派发对话框-->
    <el-dialog
@@ -759,20 +842,20 @@
                />
              </el-select>
            </el-form-item>
            <el-form-item v-show="isExpand" label="订单编号" style=" display: flex;">
            <el-form-item v-show="isExpandDialog" label="订单编号" style=" display: flex;">
              <el-input v-model="sourceForm.erpordercode" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <el-form-item v-show="isExpand" label="产品编码" style=" display: flex;">
            <el-form-item v-show="isExpandDialog" label="产品编码" style=" display: flex;">
              <el-input v-model="sourceForm.partcode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpand" label="产品名称" style=" display: flex;">
            <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="isExpand" label="产品规格" style=" display: flex;">
            <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="isExpand" label="创建人员" style=" display: flex;">
            <el-form-item v-show="isExpandDialog" label="创建人员" style=" display: flex;">
              <el-input v-model="sourceForm.creatuser" style="width: 200px" placeholder="请输入" />
            </el-form-item>
@@ -785,14 +868,14 @@
          </div>
        </el-form>
      </div>
      <!--      <el-tooltip  :content="!isExpand?'点击展示更多':'收起'" placement="bottom">-->
      <!--      <el-tooltip  :content="!isExpandDialog?'点击展示更多':'收起'" placement="bottom">-->
      <div
        style="display:flex;justify-content: center;
          align-items:center;background-color:#eee;cursor: pointer"
        @click="isExpand=!isExpand"
        @click="isExpandDialog=!isExpandDialog"
      >
        <i
          :class="!isExpand?'el-icon-arrow-down':'el-icon-arrow-up'"
          :class="!isExpandDialog?'el-icon-arrow-down':'el-icon-arrow-up'"
          :style="{color:'#42B983'}"
        /></div>
      <!--      </el-tooltip>-->
@@ -997,36 +1080,36 @@
            <el-form
              ref="formApprove"
              :model="formApprove"
              label-width="100px"
              label-width="80px"
              inline
              style="display: flex;justify-content: space-between"
            >
              <div class="elForm">
                <el-form-item label="工单编号:" class="formContent">
                <el-form-item label="工单编号:" class="formContent">
                  {{ formApprove.mesordercode }}
                </el-form-item>
                <el-form-item label="源单单号:" class="formContent">
                <el-form-item label="源单单号:" class="formContent">
                  {{ formApprove.m_po }}
                </el-form-item>
                <el-form-item label="产品编码:" class="formContent">
                <el-form-item label="产品编码:" class="formContent">
                  {{ formApprove.partcode }}
                </el-form-item>
                <el-form-item label="产品名称:" class="formContent">
                <el-form-item label="产品名称:" class="formContent">
                  {{ formApprove.partname }}
                </el-form-item>
                <el-form-item label="产品规格:" class="formContent">
                <el-form-item label="产品规格:" class="formContent">
                  {{ formApprove.partspec }}
                </el-form-item>
                <el-form-item label="工单数量:" class="formContent">
                <el-form-item label="工单数量:" class="formContent">
                  {{ formApprove.plan_qty }}
                </el-form-item>
                <el-form-item label="工艺路线:" class="formContent">
                <el-form-item label="工艺路线:" class="formContent">
                  {{ formApprove.routename }}
                </el-form-item>
                <el-form-item label="打印人员:" class="formContent">
                <el-form-item label="打印人员:" class="formContent">
                  {{ username }}
                </el-form-item>
                <el-form-item label="打印时间:" class="formContent">
                <el-form-item label="打印时间:" class="formContent">
                  {{ formApprove.lm_date }}
                </el-form-item>
              </div>
@@ -1295,8 +1378,14 @@
            fixed="right"
          >
            <template slot-scope="{row}">
              <div v-if="row.enable==='Y'"><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" />否</div>
              <div v-if="row.enable==='Y'">
                <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" />
                否
              </div>
            </template>
          </el-table-column>
        </el-table>
@@ -1322,31 +1411,19 @@
  SelectRouteStep
} from '@/api/scgl'
import { InventoryFileAssociationRoute, PartSelect, SaveInventoryFile } from '@/api/zzmx'
import { handleDatetime, handleDatetime2 } from '@/utils/global'
import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global'
import { getCookie } from '@/utils/auth'
import { MesOrderPrintSearch1, PrintOrder } from '@/api/utils'
import { urlAddRandomNo, webapp_ws_ajax_run, webapp_ws_autoupdate } from '@/utils/grwebapp'
import QRCode from 'qrcodejs2'
import $ from 'jquery'
const SER_HZ = /^[\u4e00-\u9fa5]+$/
export default {
  name: 'GD',
  components: {
    Pagination
  },
  data() {
    const validateName = (rule, value, callback) => {
      if (!value) {
        return callback(new Error('请输入编码'))
      } else {
        if (SER_HZ.test(value)) {
          return callback(new Error('编码不能为中文'))
        } else {
          callback()
        }
      }
    }
    return {
      isIpad: false,
      mainHeight: 0,
@@ -1422,7 +1499,7 @@
          { required: true, message: '请选择产品信息', trigger: ['blur', 'change'] }
        ],
        mesordercode: [
          { required: true, validator: validateName, trigger: ['blur', 'change'] }
          { required: true, validator: validateCode, trigger: ['blur', 'change'] }
        ],
        mesqty: [
          { required: true, message: '请输入工单数量', trigger: ['blur', 'change'] }
@@ -1535,7 +1612,7 @@
      },
      sourceFormTotal: 10,
      radioSelectedId: '',
      isExpand: false, // 是否张开,默认不展开
      isExpandDialog: false, // 对话框表单是否展开,默认不展开
      dialogVisibleRoute: false,
      dialogFormRoute: {
        projectName: '', // 产品名称
@@ -1544,7 +1621,9 @@
      },
      defaultroute_code: '', // 默认工艺路线选中值
      defaultroute_codeArr: '', // 默认工艺路线数组
      projectTableData: []// 设备列表
      projectTableData: [], // 设备列表
      isExpandForm: false, // 表单是否展开,默认不展开
      tableDataDetail: []// 点击工单表的行 显示详细信息
    }
  },
  created() {
@@ -1910,7 +1989,8 @@
    getHeight() {
      this.$nextTick(() => {
        this.mainHeight = window.innerHeight - 85
        this.tableHeight = this.mainHeight - 260
        // this.tableHeight = this.mainHeight - 250
        this.tableHeight = this.mainHeight - 420
        if (window.innerHeight < 769) {
          this.tableHeight = this.tableHeight - 20
        }
@@ -1930,14 +2010,14 @@
      this.dialogVisibleSearch = false
    },
    // 处理打印
    handlePrint() {
    handlePrint(wo_code) {
      // const number = Math.random() * Math.random()
      // this.number = number === 0 ? (10 + Math.random()) : number
      // console.log(number)
      const data2 = {
        username: getCookie('admin'),
        mesordercode: this.dialogForm.mesordercode
        mesordercode: wo_code || this.dialogForm.mesordercode
      }
      MesOrderPrintSearch1(data2).then(res2 => {
        if (res2.code === '200') {
@@ -2043,17 +2123,21 @@
    // 补打小标签
    supplementSmallClick(row) {
      // let obj = {}
      this.taskTableData.forEach((item, index) => {
      console.log(row, 21)
      // this.taskTableData.forEach((item, index) => {
      this.tableDataDetail.forEach((item, index) => {
        if (item.seq === row.seq) {
          console.log(item)
          this.qrForm = {
            qrvalue: item.seq === this.taskTableData.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.taskTableData[item.seq].stepcode,
            startqty: item.seq === this.taskTableData.length ? item.plan_qty : this.taskTableData[item.seq].plan_qty,
            // qrvalue: item.seq === this.taskTableData.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.taskTableData[item.seq].stepcode,
            qrvalue: item.seq === this.tableDataDetail.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.tableDataDetail[item.seq].stepcode,
            // startqty: item.seq === this.taskTableData.length ? item.plan_qty : this.taskTableData[item.seq].plan_qty,
            startqty: item.seq === this.tableDataDetail.length ? item.plan_qty : this.tableDataDetail[item.seq].plan_qty,
            wo_code: item.wo_code,
            partcode: item.partcode,
            partname: item.partname,
            nextstepname: item.seq === this.taskTableData.length ? item.stepname : this.taskTableData[item.seq].stepname,
            // nextstepname: item.seq === this.taskTableData.length ? item.stepname : this.taskTableData[item.seq].stepname,
            nextstepname: item.seq === this.tableDataDetail.length ? item.stepname : this.tableDataDetail[item.seq].stepname,
            operator: getCookie('username'),
            operatorTime: handleDatetime2(new Date())
          }
@@ -2100,7 +2184,7 @@
      this.dialogVisibleSource = true
    },
    async   getErpOrderSearch() {
    async getErpOrderSearch() {
      let tempDate2 = this.sourceForm.paystartdate
      if (tempDate2.length > 0) {
        tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1])
@@ -2164,7 +2248,7 @@
      this.sourceForm.creatuser = ''
      this.sourceForm.createdate = ''
      this.isExpand = false
      this.isExpandDialog = false
      this.sourceTableData = []
    },
    dialogVisibleSourceBack() {
@@ -2273,6 +2357,17 @@
        this.defaultroute_code = ''
      }
      this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2)
    },
    //  行点击事件
    async   rowClick(row, event, column) {
      console.log(row, event, column)
      console.log(row.wo_code, event, column)
      const { data: res } = await SearchWorkStep({ wo_code: row.wo_code })
      this.tableDataDetail = res
    },
    // 打印工单
    printOrder() {
    }
  }
}
@@ -2339,17 +2434,20 @@
    }
  }
}
.dialogVisibleRoute {
  ::v-deep .el-dialog__body {
    padding: 20px 20px !important;
  }
}
.defaultroute_code ::v-deep .el-input__suffix-inner{
.defaultroute_code ::v-deep .el-input__suffix-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: -3px;
}
.el-date-editor {
  font-size: 14px;
}
@@ -2396,9 +2494,10 @@
}
//.elTableDiv {
  ::v-deep .el-radio__label {
    display: none;
  }
::v-deep .el-radio__label {
  display: none;
}
//}
.el-table::before {
@@ -2439,19 +2538,23 @@
<style lang="scss" scoped>
$main_color: #42b983;
::v-deep  .el-range-input{
::v-deep .el-range-input {
  font-size: 14px !important;
}
::v-deep .el-range__icon{
::v-deep .el-range__icon {
  line-height: 28px !important;
}
::v-deep .el-range-separator{
::v-deep .el-range-separator {
  line-height: 28px !important;
}
::v-deep .el-range-input{
  font-size: 14px ;
::v-deep .el-range-input {
  font-size: 14px;
}
::v-deep .el-range-separator{
::v-deep .el-range-separator {
  display: flex;
  justify-content: center;
  align-items: center;