展杰
2023-11-09 c0fe59c6cf05c22a6507c8e34d7f51550acfec10
pages/inspection/inspectionInfo.vue
@@ -2,62 +2,72 @@
   <view>
      <view>
         <uni-card>
            <u-row customStyle="margin-bottom: 10px">
               <u-col span="2">
                  <label>检验单号:</label>
               </u-col>
               <u-col span="4">
                  <label>{{item.TASK_NO}}</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>
               </u-col>
            </u-row>
            <u-row customStyle="margin-bottom: 10px">
               <u-col span="2">
                  <label>工序名称:</label>
               </u-col>
               <u-col span="4">
                  <label>{{item.PROC_NAME}}</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.ITEM_NAME}}</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.ITEM_NO}}</label>
               </u-col>
            </u-row>
            <u-row customStyle="margin-bottom: 10px">
               <u-col span="2">
                  <label>检验员:</label>
               </u-col>
               <u-col span="4">
                  <label>{{name}}</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.REMEKE}}</label>
               </u-col>
            </u-row>
            <view :class="new Date().getTime()-new Date(item.BEGIN_TIME).getTime()>7200000?'red':''">
               <u-row customStyle="margin-bottom: 10px">
                  <u-col span="2">
                     <label>检验单号:</label>
                  </u-col>
                  <u-col span="4">
                     <label>{{item.TASK_NO}}</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>
                  </u-col>
               </u-row>
               <u-row customStyle="margin-bottom: 10px" v-if="item.PROC_NAME">
                  <u-col span="2">
                     <label>工序名称:</label>
                  </u-col>
                  <u-col span="4">
                     <label>{{item.PROC_NAME}}</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.ITEM_NO}} | {{item.ITEM_NAME}}</label>
                  </u-col>
               </u-row>
               <u-row customStyle="margin-bottom: 10px">
                  <u-col span="2">
                     <label>图号颜色:</label>
                  </u-col>
                  <u-col>
                     <label>{{item.ENGINEERING_NO}} / {{item.COLOR_NAME}}</label>
                  </u-col>
               </u-row>
               <u-row customStyle="margin-bottom: 10px">
                  <u-col span="2">
                     <label>规格材质:</label>
                  </u-col>
                  <u-col>
                     <label>{{item.MODEL}} / {{item.MATERIAL}}</label>
                  </u-col>
               </u-row>
               <u-row customStyle="margin-bottom: 10px">
                  <u-col span="2">
                     <label>检验员:</label>
                  </u-col>
                  <u-col span="4">
                     <label>{{name}}</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>
            </view>
         </uni-card>
      </view>
@@ -65,17 +75,19 @@
         <uni-table border stripe emptyText="暂无更多数据" style="margin-left: 5px;margin-right: 5px;">
            <!-- 表头行 -->
            <uni-tr>
               <uni-th align="center" width="80">检验项目</uni-th>
               <uni-th align="left" width="100">检验工具</uni-th>
               <uni-th align="left" width="180">备注</uni-th>
               <uni-th align="left" width="30">检验数量</uni-th>
               <uni-th align="left" width="80">上限值</uni-th>
               <uni-th align="left" width="80">下限值</uni-th>
               <uni-th align="left" width="100">检验值</uni-th>
               <uni-th align="left" width="80">检验结果</uni-th>
               <uni-th align="center" width="60">检验项目</uni-th>
               <uni-th align="center" width="80">检验工具</uni-th>
               <uni-th align="center" width="140">规格</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="80">检验值</uni-th>
               <uni-th align="center" width="75">检验结果</uni-th>
               <uni-th align="center" width="80">不良原因</uni-th>
               <uni-th align="center" width="80">备注</uni-th>
            </uni-tr>
            <!-- 表格数据行 -->
            <uni-tr v-for="item in table">
            <uni-tr v-for="(item,index) in table">
               <uni-td>{{item.CHECK_ITEM}}</uni-td>
               <uni-td>{{item.CHECK_TOOL}}</uni-td>
               <uni-td>{{item.SPECIFICATION}}</uni-td>
@@ -89,29 +101,52 @@
               </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 && (item.VALUE <= item.UP_ALLOW && item.VALUE >= 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>
               </uni-td>
               <uni-td>
                  <view class="content" @click="useOutClickSide">
                     <easy-select ref="easySelect" size="medium" :value="item.BAD_REASON" @selectOne="selectOne($event,index)"></easy-select>
                  </view>
               </uni-td>
               <uni-td>
                  <u--textarea height="40px" v-model="item.MEMO" placeholder="请输入内容"></u--textarea>
               </uni-td>
            </uni-tr>
         </uni-table>
      </view>
      <u-button text="提交"  type="primary" style="position: absolute;bottom:0;" @click="submit()"></u-button>
      <view style="margin-top: 10px;">
         <u-row style="margin-bottom: 5px;">
            <u--text type="info" text="备注"></u--text>
         </u-row>
         <u-row>
            <u--textarea v-model="remeke" placeholder="请输入内容"></u--textarea>
         </u-row>
      </view>
      <u-button text="提交" type="primary" style="margin-top: 10px;" @click="submit()"></u-button>
      <u-toast ref="uToast" />
   </view>
</template>
<script>
   import {
      getInspectionInfo, saveInspectionInfo
      getInspectionInfo,
      saveInspectionInfo
   } from '../../api/inspection';
   import {
      baseUrl
   } from '../../config.js'
   export default {
      data() {
         return {
            item: {},
            table: [],
            name:''
            name: '',
            remeke: '',
            show: false
         }
      },
      onLoad(option) {
@@ -120,26 +155,65 @@
         this.getInspection(item.CHECK_NO)
         this.name = uni.getStorageSync('userInfo').username
      },
      onNavigationBarButtonTap(e) {
         let that = this
         uni.chooseImage({
            count: 1,
            sizeType: ['original', 'compressed'],
            sourceType: ['camera'],
            success: chooseImage => {
               const tempFilePaths = chooseImage.tempFilePaths;
               uni.uploadFile({
                  url: 'http://183.249.77.50:8008' + '/hkFile/upload?mid=' + that.item.CHECK_NO +
                     '&username=' + uni.getStorageSync('userInfo').code,
                  filePath: tempFilePaths[0],
                  name: 'file',
                  success: (uploadFileRes) => {
                     console.log(uploadFileRes.data);
                  },
                  fail: (res) => {
                     console.log(res)
                  }
               });
            }
         })
      },
      methods: {
         getInspection(chenkNo) {
            getInspectionInfo(chenkNo).then(res => {
               // this.table = res.data
               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 = '合格'
                     } else {
                        insert.VALUE = 0
                     }
                     this.table.push(insert)
                  // 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 = '合格'
                  //    } else {
                  //       insert.VALUE = null
                  //    }
                  //    this.table.push(insert)
                  // }
                  if (!item.UP_ALLOW) {
                     item.VALUE = '合格'
                  } else {
                     item.VALUE = null
                  }
                  this.table.push(item)
               }
               console.log(this.table)
            })
         },
         selectOne(options,index) {
            this.table[index].BAD_REASON = options.label
            console.log(options.label);
         },
         useOutClickSide() {
            this.$refs.easySelect.hideOptions && this.$refs.easySelect.hideOptions()
         },
         changeSwitch(item) {
            console.log(item)
            if (item.VALUE == '合格') {
               item.VALUE = '不合格'
            } else {
@@ -147,9 +221,53 @@
            }
         },
         submit() {
            saveInspectionInfo(this.item.CHECK_NO,this.table).then(res => {
               console.log(res)
            })
            if(this.table.length==0){
               this.$refs.uToast.show({
                  message: "提交失败,请维护检验项目",
                  type: 'error'
               })
               return
            }else{
               if(this.check()) {
                  saveInspectionInfo(this.item.CHECK_NO, this.table, this.remeke).then(res => {
                     if(!res.result) {
                        this.$refs.uToast.show({
                           message: res.msg,
                           type: 'error'
                        })
                        return
                     }else{
                        // this.$refs.uToast.show({
                        //    message: "提交成功",
                        //    type: 'success'
                        // })
                        let pages=getCurrentPages();
                        let beforePage=pages[pages.length-2];
                        uni.navigateBack({
                           delta: 1,  //返回的页面数,如果为1表示返回上一页
                           success: (event)=> {
                              console.log('提交成功');
                              beforePage.$vm.reload()
                           }
                        });
                     }
                  })
                  return
               }
               this.$refs.uToast.show({
                  message: '有检验项目未录入完整测试结果!',
                  type: 'error'
               })
               return
            }
         },
         check() {
            for(let item of this.table) {
               if(item.VALUE === null) {
                  return false
               }
            }
            return true
         }
      }
   }
@@ -180,4 +298,7 @@
   .text {
      font-size: x-large;
   }
   .red{
      color: red;
   }
</style>