yhj
2024-06-05 b22000f1e0034376f408d236f4425e1dc98e51d8
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,31 @@
               </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 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>
                 </view>
               </view>
         </uni-card>
      </view>
@@ -76,13 +102,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 +118,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,10 +129,10 @@
               </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 == '不合格'"
                     v-else
                     text="不合格" type="error"></u-tag>
               </uni-td>
               <uni-td>
@@ -113,7 +141,7 @@
                  </view> -->
                  <view class="login">
                     <w-select style="margin-left: 20rpx;" v-model='chooseValue' defaultValue="请选择" 
                     :list='list' valueName='content' keyName="id" @change='change(index)'>
                     :list='list' valueName='CONTENT' keyName="ID" @change='change(index)'>
                     </w-select>
                  </view>
               </uni-td>
@@ -139,7 +167,9 @@
<script>
   import {
      getInspectionInfo,
      saveInspectionInfo
      saveInspectionInfo,
      getBadReason,
      generateInfo
   } from '../../api/inspection';
   import {
      baseUrl
@@ -153,13 +183,7 @@
            remeke: '',
            //show: false
            chooseValue: "",
            list: [{
              id: '来料不良',
              content: '来料不良'
            }, {
              id: '生产不良',
              content: '生产不良'
            }]
            list: []
         }
      },
      onLoad(option) {
@@ -167,6 +191,7 @@
         this.item = item
         this.getInspection(item.CHECK_NO)
         this.name = uni.getStorageSync('userInfo').username
         this.getBadReason()
      },
      onNavigationBarButtonTap(e) {
         let that = this
@@ -227,7 +252,6 @@
         // },
         change(index) {
            this.table[index].BAD_REASON=this.chooseValue;
            console.log(this.table)
         },
         changeSwitch(item) {
            console.log(item)
@@ -278,6 +302,38 @@
               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) {
@@ -285,8 +341,71 @@
               }
            }
            return true
         }
      }
      },
      getMaterialInfo(checkNo) {
           return uni.request({
             url: '/check/getMaterialInfo?checkNo=' + checkNo,
             method: 'POST',
             header: {
               'Content-Type': 'application/json',
               'dataType': 'json',
               'Accept': 'application/json'
             }
           });
         },
          closeModal() {
                 this.pdfVisible = false;
               },
      fetchDrawingNumber() {
                        // 获取当前页面的检验单号
                        const checkNo = this.item.CHECK_NO;
                        // 第一次请求:获取物料信息
                        this.getMaterialInfo(checkNo).then(res => {
                          const data = res[1].data; // uni.request 返回的是一个数组,res[1] 才是 response
                          if (data.result) {
                            const { materialId, drawingNumber } = data.data;
                             const url = `http://192.168.0.98:808/deviceMessage.ashx?lb=${materialId}&id=${drawingNumber}`;
                            // 第二次请求:获取PDF链接
                            uni.request({
                              url: url,
                              method: 'POST',
                              success: (response) => {
                                const respData = response.data;
                                if (respData.result) {
                                  this.pdfLink = respData.link; // 设置PDF链接
                                  this.pdfVisible = true; // 打开弹出窗口
                                } else {
                                  uni.showToast({
                                    title: respData.msg,
                                    icon: 'none'
                                  });
                                }
                              },
                              fail: (error) => {
                                uni.showToast({
                                  title: '请求图号链接失败',
                                  icon: 'none'
                                });
                              }
                            });
                          } else {
                            uni.showToast({
                              title: data.msg,
                              icon: 'none'
                            });
                          }
                        }).catch(error => {
                          uni.showToast({
                            title: '获取物料信息失败',
                            icon: 'none'
                          });
                        });
                  }
   }
</script>