展杰
2024-07-03 e6044ce7c9513de2733ffbfb76cc953bcf7bd5d3
pages/inspection/inspectionInfo.vue
@@ -11,9 +11,25 @@
                     <label>{{item.TASK_NO}}</label>
                  </u-col>
               </u-row>
               <u-row customStyle="margin-bottom: 10px" v-if="item.LOT_NO">
                  <u-col span="2">
                     <label>销售单号:</label>
                  </u-col>
                  <u-col span="4">
                     <label>{{item.LOT_NO}}</label>
                  </u-col>
               </u-row>
               <u-row customStyle="margin-bottom: 10px">
                  <u-col span="2">
                     <label>机台号:</label>
                     <label>工单数量:</label>
                  </u-col>
                  <u-col span="4">
                     <label>{{item.DAA008}}</label>
                  </u-col>
               </u-row>
               <u-row customStyle="margin-bottom: 10px">
                  <u-col span="2">
                     <label>机台 / 产线:</label>
                  </u-col>
                  <u-col span="4">
                     <label>{{item.MACHINE_NO}}</label>
@@ -53,21 +69,23 @@
               </u-row>
               <u-row customStyle="margin-bottom: 10px">
                  <u-col span="2">
                     <label>检验员:</label>
                     <label>检验员/检验类型:</label>
                  </u-col>
                  <u-col span="4">
                     <label>{{name}}</label>
                     <label>{{item.OPERATE_MAN}} / {{item.FTYPE}}</label>
                  </u-col>
               </u-row>
               <u-row customStyle="margin-bottom: 10px">
                  <u-col span="2">
                     <label>检验类型</label>
                  </u-col>
                  <u-col span="4">
                     <label>{{item.FTYPE}}</label>
                  </u-col>
               </u-row>
               <u-button text="生成检验资料" type="primary" :plain="true"
                  style="width: 200px;height: 100px;position: absolute;top: 30%;right: 10%;"
                  @click="generate()"></u-button>
            </view>
            <view class="container">
               <button @click="fetchDrawingNumber">查看图号</button>
            </view>
         </uni-card>
      </view>
@@ -76,13 +94,14 @@
            <!-- 表头行 -->
            <uni-tr>
               <uni-th align="center" width="60">检验项目</uni-th>
               <uni-th align="center" width="80">检验工具</uni-th>
               <uni-th align="center" width="60">检验工具</uni-th>
               <uni-th align="center" width="140">规格</uni-th>
               <uni-th align="center" width="40">检验数量</uni-th>
               <uni-th align="center" width="80" v-if="item.DEPARTMENT_NO=='HS0202'">组件名称</uni-th>
               <uni-th align="center" width="40">数量</uni-th>
               <uni-th align="center" width="60">上限值</uni-th>
               <uni-th align="center" width="60">下限值</uni-th>
               <uni-th align="center" width="70">检验值</uni-th>
               <uni-th align="center" width="78">检验结果</uni-th>
               <uni-th align="center" width="78">结果</uni-th>
               <uni-th align="center" width="80">不良原因</uni-th>
               <uni-th align="center" width="80">备注</uni-th>
            </uni-tr>
@@ -91,6 +110,7 @@
               <uni-td>{{item.CHECK_ITEM}}</uni-td>
               <uni-td>{{item.CHECK_TOOL}}</uni-td>
               <uni-td>{{item.SPECIFICATION}}</uni-td>
               <uni-td v-if="item.FTEXT_TYPE">{{item.FTEXT_TYPE}}</uni-td>
               <uni-td>{{item.CHECK_NUM}}</uni-td>
               <uni-td>{{item.UP_ALLOW}}</uni-td>
               <uni-td>{{item.DOWN_ALLOW}}</uni-td>
@@ -101,19 +121,17 @@
               </uni-td>
               <uni-td>
                  <u-tag
                     v-if="item.UP_ALLOW && (item.VALUE <= item.UP_ALLOW && item.VALUE >= item.DOWN_ALLOW) || !item.UP_ALLOW && item.VALUE == '合格'"
                     v-if="item.UP_ALLOW && (parseFloat(item.VALUE) <= parseFloat(item.UP_ALLOW) && parseFloat(item.VALUE) >= parseFloat(item.DOWN_ALLOW)) || (!item.UP_ALLOW && item.VALUE == '合格')"
                     text="合格" type="success"></u-tag>
                  <u-tag
                     v-if="item.UP_ALLOW && (item.VALUE > item.UP_ALLOW || item.VALUE < item.DOWN_ALLOW) || !item.UP_ALLOW && item.VALUE == '不合格'"
                     text="不合格" type="error"></u-tag>
                  <u-tag v-else text="不合格" type="error"></u-tag>
               </uni-td>
               <uni-td>
<!--                   <view class="content" @click="useOutClickSide">
                  <!--                   <view class="content" @click="useOutClickSide">
                     <easy-select ref="easySelect" size="medium" :value="item.BAD_REASON" @selectOne="selectOne($event,index)"></easy-select>
                  </view> -->
                  <view class="login">
                     <w-select style="margin-left: 20rpx;" v-model='chooseValue' defaultValue="请选择"
                     :list='list' valueName='content' keyName="id" @change='change(index)'>
                     <w-select style="margin-left: 20rpx;" v-model='chooseValue' defaultValue="请选择" :list='list'
                        valueName='CONTENT' keyName="ID" @change='change(index)'>
                     </w-select>
                  </view>
               </uni-td>
@@ -131,6 +149,21 @@
            <u--textarea v-model="remeke" placeholder="请输入内容"></u--textarea>
         </u-row>
      </view>
      <!-- 弹出窗口 -->
      <view v-if="pdfVisible" class="modal">
         <view class="modal-content">
            <view class="modal-header">
               <text>PDF预览</text>
               <button @click="closeModal">关闭</button>
            </view>
            <!--          <web-view v-if="pdfLink" :src="pdfLink" class="pdf-view"></web-view> -->
            <view class="pdf-view">
               <!-- 在此处显示 PDF 内容 -->
               <iframe :src="pdfLink" width="100%" height="100%"></iframe>
            </view>
         </view>
      </view>
      <u-button text="提交" type="primary" style="margin-top: 10px;" @click="submit()"></u-button>
      <u-toast ref="uToast" />
   </view>
@@ -139,7 +172,9 @@
<script>
   import {
      getInspectionInfo,
      saveInspectionInfo
      saveInspectionInfo,
      getBadReason,
      generateInfoc
   } from '../../api/inspection';
   import {
      baseUrl
@@ -151,15 +186,11 @@
            table: [],
            name: '',
            remeke: '',
            pdfVisible: false, // 在这里声明 pdfVisible
            pdfLink: '', // 也声明 pdfLink,确保它们是响应式的
            //show: false
            chooseValue: "",
            list: [{
              id: '来料不良',
              content: '来料不良'
            }, {
              id: '生产不良',
              content: '生产不良'
            }]
            list: []
         }
      },
      onLoad(option) {
@@ -167,6 +198,7 @@
         this.item = item
         this.getInspection(item.CHECK_NO)
         this.name = uni.getStorageSync('userInfo').username
         this.getBadReason()
      },
      onNavigationBarButtonTap(e) {
         let that = this
@@ -183,7 +215,7 @@
                  name: 'file',
                  success: (uploadFileRes) => {
                     console.log(uploadFileRes.data);
                  },
                  fail: (res) => {
                     console.log(res)
@@ -198,7 +230,7 @@
               for (let item of res.data) {
                  // for (let i = 0; i < parseInt(item.CHECK_NUM); i++) {
                  //    let insert = JSON.parse(JSON.stringify(item))
                  //    insert.CHECK_ITEM = insert.CHECK_ITEM + '-' + i
                  //    if (!insert.UP_ALLOW) {
                  //       insert.VALUE = '合格'
@@ -212,7 +244,7 @@
                  } else {
                     item.VALUE = null
                  }
                  this.table.push(item)
               }
               console.log(this.table)
@@ -226,8 +258,7 @@
         //    this.$refs.easySelect.hideOptions && this.$refs.easySelect.hideOptions()
         // },
         change(index) {
            this.table[index].BAD_REASON=this.chooseValue;
            console.log(this.table)
            this.table[index].BAD_REASON = this.chooseValue;
         },
         changeSwitch(item) {
            console.log(item)
@@ -238,31 +269,31 @@
            }
         },
         submit() {
            if(this.table.length==0){
            if (this.table.length == 0) {
               this.$refs.uToast.show({
                  message: "提交失败,请维护检验项目",
                  type: 'error'
               })
               return
            }else{
               if(this.check()) {
            } else {
               if (this.check()) {
                  saveInspectionInfo(this.item.CHECK_NO, this.table, this.remeke).then(res => {
                     if(!res.result) {
                     if (!res.result) {
                        this.$refs.uToast.show({
                           message: res.msg,
                           type: 'error'
                        })
                        return
                     }else{
                     } else {
                        // this.$refs.uToast.show({
                        //    message: "提交成功",
                        //    type: 'success'
                        // })
                        let pages=getCurrentPages();
                        let beforePage=pages[pages.length-2];
                        let pages = getCurrentPages();
                        let beforePage = pages[pages.length - 2];
                        uni.navigateBack({
                           delta: 1,  //返回的页面数,如果为1表示返回上一页
                           success: (event)=> {
                           delta: 1, //返回的页面数,如果为1表示返回上一页
                           success: (event) => {
                              console.log('提交成功');
                              beforePage.$vm.reload()
                           }
@@ -278,15 +309,89 @@
               return
            }
         },
         generate() {
            generateInfo(this.item.CHECK_NO).then(res => {
               if (!res.result) {
                  this.$refs.uToast.show({
                     message: res.msg,
                     type: 'error'
                  })
                  return
               } else {
                  this.$refs.uToast.show({
                     message: "更新成功",
                     type: 'success'
                  })
                  this.table.splice(0, this.table.length)
                  this.getInspection(this.item.CHECK_NO)
               }
            })
         },
         getBadReason() {
            getBadReason().then(res => {
               console.log(res)
               if (!res.result) {
                  this.$refs.uToast.show({
                     message: res.msg,
                     type: 'error'
                  })
                  return
               }
               this.list = res.data
            })
         },
         check() {
            for(let item of this.table) {
               if(item.VALUE === null) {
            for (let item of this.table) {
               if (item.VALUE === null) {
                  return false
               }
            }
            return true
         },
         fetchDrawingNumber() {
            let lb = 0;
            if (this.item.ITEM_NO.startsWith('A') || this.item.ITEM_NO.startsWith('B')) {
               lb = 1;
            } else if (this.item.ITEM_NO.startsWith('C')) {
               lb = 2;
            }
            const id = this.item.ENGINEERING_NO;
            // lb = 2;
            // const id = 'A3-A010';
            const url = "http://192.168.0.98:808/deviceMessage.ashx?lb='"+lb+"'&id='"+id+"'";
            //const url = `/api/deviceMessage.ashx?lb=${lb}&id=${id}`; // 使用代理路径
            // 打印 URL 进行调试
            console.log("Request URL:", url);
            uni.request({
               url: url,
               method: 'POST',
               success: (response) => {
                  const respData = response.data;
                  if (respData != "") {
                     this.pdfLink = respData;
                     this.pdfVisible = true;
                  } else {
                     uni.showToast({
                        title: respData.msg,
                        icon: 'none'
                     });
                  }
               },
               fail: (error) => {
                  uni.showToast({
                     title: '请求图号链接失败',
                     icon: 'none'
                  });
               }
            });
         },
         closeModal() {
            this.pdfVisible = false;
         }
      }
      },
   }
</script>
@@ -315,7 +420,52 @@
   .text {
      font-size: x-large;
   }
   .red{
   .red {
      color: red;
   }
   .modal {
      display: flex;
      justify-content: center;
      align-items: center;
      position: absolute;
      top: 10%;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0, 0, 0, 0.5);
      z-index: 1000;
   }
   .modal-content {
      background-color: white;
      padding: 20px;
      border-radius: 10px;
      width: 80%;
      height: 80%;
   }
   .pdf-view {
      width: 100%;
      height: 100%;
   }
   button {
      background-color: #4CAF50;
      color: white;
      border: none;
      padding: 10px 20px;
      text-align: center;
      text-decoration: none;
      display: inline-block;
      font-size: 16px;
      margin: 4px 2px;
      cursor: pointer;
   }
   button:hover {
      background-color: #45a049;
   }
</style>