licp
2024-10-08 63343a3a32cd59a8ce7b8e15a68dd996e28f6ad9
优化
已修改4个文件
198 ■■■■■ 文件已修改
src/assets/api/controller.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-inspect-order-plan/Inspection.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b1-inspection-order.vue 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/index.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js
@@ -184,6 +184,7 @@
  selectNoProducts: "/insOrder/selectNoProducts", //导出
  checkUpdate: "/insOrder/checkUpdate", //撤销审核通过
  checkNumber: "/insOrder/checkNumber",
  addNumber: "/insOrder/addNumber",
}
const sampleOrder = {
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -266,11 +266,11 @@
        <el-button size="small" type="primary" @click="handleSubmit" v-if="state==1"
          :loading="submitLoading">提交</el-button>
        <!-- 复核 -->
        <el-button size="small" type="primary" @click="upInsReview(1)" :loading="reviewLoading"
        <el-button size="small" type="primary" @click="upInsReview(1,'继续试验')" :loading="reviewLoading"
          v-if="state>1&&!isLook">继续试验</el-button>
        <el-button size="small" @click="upInsReview(0)" v-if="state>1&&!isLook" type="danger">再次试验</el-button>
        <el-button size="small" @click="upInsReview(2)" v-if="state>1&&!isLook">结束试验</el-button>
        <el-button size="small" @click="$emit('goback')" v-if="!noBack">返回</el-button>
        <el-button size="small" @click="upInsReview(0,'再次试验')" v-if="state>1&&!isLook" type="danger">再次试验</el-button>
        <el-button size="small" @click="upInsReview(2,'结束试验')" v-if="state>1&&!isLook">结束试验</el-button>
        <el-button size="small" @click="handleBack" v-if="!noBack">返回</el-button>
      </el-col>
    </el-row>
    <div class="search" v-show="!isLook">
@@ -3123,8 +3123,13 @@
        })
      },
      // 复核
      upInsReview(e) {
        if (e == 1||e==2) {
      upInsReview(e,type) {
        this.$confirm(`是否${type}?`, "提示", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }).then(() => {
          if (e == 1||e==2) {
          // 继续试验
          this.reviewLoading = true;
          this.$axios.post(this.$api.insOrderPlan.verifyPlan, {
@@ -3146,6 +3151,7 @@
          // 再次试验
          this.reviewDia = true;
        }
        })
      },
      handleReviewDia() {
        if (this.noReason) {
@@ -3632,6 +3638,19 @@
          this.currentFile.url = this.javaApi+'/word/'+row.fileUrl
        }
        this.lookFileVisible = true
      },
      handleBack(){
        if(this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('电路试验')){
          this.$confirm('请确认当前数据是否全部保存,是否返回?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() => {
            this.$emit('goback')
          })
        }else{
          this.$emit('goback')
        }
      }
    }
  }
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)
        this.getLabelPrinting(selection)
        this.printDialogVisible = true
        let isAdd = await this.searchPrint(selection)
        if(!isAdd){
          this.getLabelPrinting(selection)
          this.printDialogVisible = true
        }
      },
            getAuthorizedPerson() {
                this.$axios.get(this.$api.user.getUserMenu).then(res => {
src/view/index.vue
@@ -505,6 +505,20 @@
                this.saveClick()
            },
            removeTab(index) {
        console.log(3333,this.$refs[`com-${this.tabs[index].k}`],this.tabs[index])
        let obj = this.$refs[`com-${this.tabs[index].k}`][0]
        if(obj.state&&obj.state==1&&this.tabs[index].v=='检验任务'&&(obj.version===0||obj.version===1)){
          this.$confirm('请确认当前数据是否全部保存,是否关闭当前页面?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() => {
            this.tabs.splice(index, 1);
            let data = this.tabs[this.tabs.length - 1]
            this.upTabActive(data.k)
          })
          return
        }
                this.tabs.splice(index, 1);
                let data = this.tabs[this.tabs.length - 1]
                this.upTabActive(data.k)