licp
2024-10-08 63343a3a32cd59a8ce7b8e15a68dd996e28f6ad9
src/components/view/b1-inspection-order.vue
@@ -152,6 +152,19 @@
    line-height: 1.5em; /* 行高 */
    height: 3.0em; /* 高度为行高的两倍 */
  }
  .thermal-table{
    min-width: calc(100% - 10px);
    margin: 5px 5px 0;
    table-layout: fixed;
  }
  .thermal-table td {
    min-width: 70px;
    text-align: center;
    font-size: 14px;
    word-wrap: break-word;
    white-space: normal;
    padding: 5px;
  }
</style>
<template>
@@ -166,7 +179,7 @@
               </el-col>
            </el-row>
         </div>
         <div class="search" :style="`height: ${more?130:80}px;`">
         <div class="search" :style="`height: ${more?150:80}px;`">
        <el-row :gutter="10" style="width: 100%;">
          <el-col :span="20" style="display: flex;flex-wrap: wrap;">
            <div class="search_thing" style="width: 20%;">
@@ -206,6 +219,37 @@
                placeholder="选择日期">
                </el-date-picker>
              </div>
            </div>
            <div class="search_thing" style="width: 20%;" v-if="more">
              <div class="search_label">约定时间:</div>
              <div class="search_input">
                <el-date-picker style="width:100%" v-model="componentData.entity.appointed"
                type="date"
                size="small"
                format="yyyy-MM-dd"
                value-format="yyyy-MM-dd"
                clearable
                placeholder="选择日期">
                </el-date-picker>
              </div>
            </div>
            <div class="search_thing" style="width: 20%;" v-if="more">
              <div class="search_label" style="width: 130px;">样机完成时间:</div>
              <div class="search_input">
                <el-date-picker style="width:100%" v-model="componentData.entity.issueTime"
                type="date"
                size="small"
                format="yyyy-MM-dd"
                value-format="yyyy-MM-dd"
                clearable
                placeholder="选择日期">
                </el-date-picker>
              </div>
            </div>
            <div class="search_thing" style="width: 20%;" v-if="more">
              <div class="search_label">电机编号:</div>
              <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                  v-model="componentData.entity.motorNumber" @keyup.enter.native="refreshTable()"></el-input></div>
            </div>
            <div class="search_thing" style="width: 20%;" v-if="more">
              <div class="search_label">下单人:</div>
@@ -375,6 +419,9 @@
                        <el-row style="margin-top: 1px;font-size: 14px;">
                          <el-col  style="font-weight: bold;"><span>样品名称:&nbsp; </span>{{ item.sample }}</el-col>
                        </el-row>
                        <el-row style="margin-top: 1px;font-size: 14px;">
                          <el-col  style="font-weight: bold;"><span>电机编号:&nbsp; </span>{{ item.motorNumber }}</el-col>
                        </el-row>
                        <el-row style="margin-top: 1px;font-size: 14px;" class="ellipsis-multiline">
                          <el-col  style="font-weight: bold;"><span>检测项目:&nbsp; </span>{{ item.item }}</el-col>
                        </el-row>
@@ -421,6 +468,9 @@
                <el-row style="font-size: 0.20cm;">
                  <el-col ><span>样品名称:&nbsp; </span>{{ item.sample }}</el-col>
                </el-row>
                <el-row style="font-size: 0.20cm;">
                  <el-col ><span>电机编号:&nbsp; </span>{{ item.motorNumber }}</el-col>
                </el-row>
                <el-row style="font-size: 0.20cm;width: 4cm;">
                  <el-col class="ellipsis-multiline"><span>检测项目:&nbsp; </span>{{ item.item }}</el-col>
                </el-row>
@@ -443,6 +493,36 @@
          </el-card>
        </div>
    </div>
    <el-dialog title="样机编号" :visible.sync="BZDialogVisible" width="60%">
            <div class="body" style="max-height: 60vh;" v-if="BZDialogVisible">
            </div>
        <table border="1" class="thermal-table" cellpadding="10">
          <tr>
            <td>委托单号</td>
            <td>样品</td>
            <td>样品编号</td>
            <td>样品型号</td>
            <td>电机编号</td>
          </tr>
          <template v-for="(item,index) in BZinfo">
            <tr v-for="(m,i) in item.arr" :key="i">
              <td :rowspan="item.arr.length" v-if="i==0">{{item.name}}</td>
              <td>{{ m.sample }}</td>
              <td>{{ m.sampleCode }}</td>
              <td>{{ m.model }}</td>
              <td>
                <el-input v-model="m.motorNumber" size="small"></el-input>
              </td>
            </tr>
          </template>
        </table>
            <span slot="footer" class="dialog-footer">
               <el-row>
                  <el-button @click="BZDialogVisible=false">取 消</el-button>
                  <el-button type="primary" @click="submitForm3" :loading="upLoad">确 定</el-button>
               </el-row>
            </span>
         </el-dialog>
   </div>
</template>
@@ -451,6 +531,7 @@
   import Add from '../do/b1-ins-order/add.vue'
  import vueQr from 'vue-qr'
  import PrintJS from 'print-js'
import { Header } from 'iview';
   export default {
      components: {
         ValueTable,
@@ -499,6 +580,9 @@
            name:null,
            engineering:null,
            production:null,
            appointed:null,
            issueTime:null,
            motorNumber:null,
                  // orderBy: {
                  //    field: '',
                  //    order: ''
@@ -762,7 +846,9 @@
        qrData:[],
        multipleSelection:[],
        sonLaboratoryList:[],
        currentRole:''
        currentRole:'',
        BZinfo:[],
        BZDialogVisible:false,
         }
      },
    watch:{
@@ -794,7 +880,59 @@
        let res = await this.$axios.post(this.$api.insOrder.checkNumber,{
          ids:selection.map(m=>m.id).join(',')
        })
        console.log(1111,res)
        if(res.data){
          let arr = []
          for(let i in res.data){
            let obj = {
              name:i,
              arr:res.data[i],
              motorNumber:null,
            }
            arr.push(obj)
          }
          this.BZinfo = arr
          this.BZDialogVisible = true
          return true
        }else{
          return false
        }
      },
      submitForm3(){
        let arr = []
        let num = 0;
        this.BZinfo.forEach(m=>{
          arr = arr.concat(m.arr)
        })
        arr.forEach(m=>{
          if(!m.motorNumber){
            num++
          }
        })
        if(num>0){
          return this.$message.warning("请输入电机编号")
        }
        this.upLoad = true
        this.$axios.post(this.$api.insOrder.addNumber,{
          insSamples:arr.map(m=>{
            return {
              id:m.id,
              motorNumber:m.motorNumber
            }
          })
        },{
          header: {
            'Content-Type': 'application/json;charset=UTF-8',
          },
          noQs:true
        }).then(res => {
          this.upLoad = false;
          if(res.code == 200){
            this.BZDialogVisible = false
            this.getLabelPrinting(this.multipleSelection)
            this.printDialogVisible = true
            this.refreshTable()
          }
        })
      },
      getLabelPrinting(selection){
        this.loadPint = true;
@@ -874,9 +1012,11 @@
            return
        }
        let selection = this.multipleSelection
        await this.searchPrint(selection)
        let isAdd = await this.searchPrint(selection)
        if(!isAdd){
        this.getLabelPrinting(selection)
        this.printDialogVisible = true
        }
      },
         getAuthorizedPerson() {
            this.$axios.get(this.$api.user.getUserMenu).then(res => {