Jelajahi Sumber

修改扫码静态页面

CSNZ 3 tahun lalu
induk
melakukan
cd730a40b1

+ 206 - 0
src/views/system/jbdScan/goods/manualConfirmation.vue

@@ -0,0 +1,206 @@
+<!-- 样品接收确认 -->
+<template>
+  <div class="sample-scan">
+    <!-- 扫码接收的输入框-->
+        <el-input
+          v-model="facilityId"
+          ref="redarInput"
+          @change="facilityData(facilityId)"
+          style="z-index: -999;"
+          ></el-input>
+         <!-- <el-button type="primary" @click="openRedar" >
+            測試</el-button> -->
+         <!-- 扫码操作组件-->
+           <div class="popContainer" v-if="redar" @click="remRedar">
+                <dv-decoration-12 style="width:150px;height:150px;margin:0 auto;top: 35%;">
+                 <span style=" color: #66D9EF;">开启扫描设备连接-样品接收确认</span>
+                </dv-decoration-12>
+           </div>
+              <el-dialog
+               width="90%"
+               :modal-append-to-body='false'
+               title="      样品手动接收确认操作 - 确认样品数量、存放位置、接样确认状态 - 【位置根据是否留样二选一进行选择】"
+               @close="closeDialog"
+               :before-close = "handleClose"
+               :visible.sync="visible"
+
+               > <!-- 表单是否显示 -->
+                   <div style="min-height: 600px;"  @click.self="handleChange">
+                     <el-button @click="submitData('确认')" type="primary" style="float: right;margin: 5px;">样品确认</el-button>
+                       <el-table
+                           :data="listData"
+                           stripe
+                           style="width: 100%">
+
+                         <el-table-column
+                           prop="yang_pin_bian_hao"
+                           label="样品编号">
+                          </el-table-column>
+
+                         <el-table-column
+                           prop="yang_pin_ming_che"
+                           label="样品名称">
+                         </el-table-column>
+
+                         <el-table-column
+                           prop="shou_yang_shu_lia"
+                           label="收样数量"
+                           width="100px">
+                         </el-table-column>
+
+                         <el-table-column
+                           label="本次确认数量"
+                           width="150px">
+                               <template slot-scope="scope">
+                                   <el-input-number
+                                    v-model="scope.row.jie_yang_shu_lian"
+                                    controls-position="right"
+                                    @change="handleChange"
+                                    :min="1" :max="9999">
+                                    </el-input-number>
+                                </template>
+                         </el-table-column>
+
+                         <el-table-column
+                           prop="shi_fou_liu_yang_"
+                           label="是否留样"
+                           width="100px">
+                         </el-table-column>
+
+                         <el-table-column
+                           label="样品存放位置"
+                           width="230px"
+                           >
+                            <template slot-scope="scope">
+                              <ibps-link-data
+                                v-model="scope.row.shou_yang_wei_zhi"
+                                template-key = "mjyphjwzjztzly"
+                              />
+                             </template>
+                         </el-table-column>
+
+                         <el-table-column
+                           label="留样存放位置"
+                           width="230px">
+                            <template slot-scope="scope">
+                              <ibps-link-data
+                                v-model="scope.row.liu_yang_wei_zhi_"
+                                template-key = "mjyphjwzjztzly"
+                              />
+                             </template>
+
+                         </el-table-column>
+
+                         <el-table-column
+                           label="接样确认状态"
+                           width="230px">
+                            <template slot-scope="scope">
+                                <el-select v-model="scope.row.jie_yang_zhuang_t" placeholder="请选择">
+                                  <el-option
+                                    v-for="item in options"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value">
+                                  </el-option>
+                                </el-select>
+
+                             </template>
+
+                         </el-table-column>
+
+                         <el-table-column label="功能">
+                                 <template slot-scope="scope">
+                                     <el-button
+                                       size="small"
+                                       type="danger"
+                                       icon="el-icon-delete"
+                                       @click="deleteData(scope.row.id_)"
+                                     >删除</el-button>
+                                 </template>
+                               </el-table-column>
+
+
+                       </el-table>
+                   </div>
+             </el-dialog>
+
+  </div>
+</template>
+
+
+<script>
+import manualConfirmationJS from '../js/manualConfirmationJS.js'
+import IbpsLinkData from '@/business/platform/data/templaterender/link-data'
+ export default {
+   components:{
+     IbpsLinkData
+   },
+   mixins:[manualConfirmationJS],
+   props:{scanVisible:Boolean},
+   watch:{
+    listData: {
+
+           handler(val, oldName) {
+            if(val.length>0){
+              this.visible = true
+              this.redar = false    // 扫描后就让扫描组件隐藏
+            }
+         },
+         deep: true,
+         immediate: true
+         },
+     scanVisible:{
+       handler(val, oldName) {
+          if(val){
+            this.redar = false       // 扫码的组件  一开始先展示
+            this.visible = true    // 结果列表   一开始没扫描就不展示
+
+            this.$nextTick(() => {
+                this.$refs.redarInput.focus(); //聚焦input
+              })
+            this.listData = [] //清空列表
+          }else{
+            this.remRedar()
+          }
+       },
+       deep: true,
+       immediate: true
+     }
+   },
+   created() {
+     this.facilityData()
+   },
+  data () {
+    return {
+     updateNum:1,
+     visible:false,
+     redar:false,
+     facilityId:'',
+     listData:[],
+     options: [{
+               value: '已确认',
+               label: '已确认'
+             }, {
+               value: '未确认',
+               label: '未确认'
+             }],
+      OriginalPosition:[],
+      mjwtsqbAllResult:[]
+
+    }
+  },
+
+  }
+</script>
+
+<style>
+ .sample-scan .popContainer{
+      position: fixed;
+      top: 0;
+      left: 0;
+      right: 0;
+      bottom: 0;
+      z-index: 9999999;
+      background: rgba(0,0,0,0.7);
+  }
+</style>

+ 3 - 9
src/views/system/jbdScan/goods/sampleConfirmation.vue

@@ -17,14 +17,14 @@
                 </dv-decoration-12>
            </div>
               <el-dialog
-               width="75%"
+               width="90%"
                :modal-append-to-body='false'
                title="样品扫码接收确认操作 - 扫码样品标签并确认样品数量、存放位置-位置根据是否留样二选一进行选择 (如果扫描无结果,请点击除标题外的空白处,恢复扫码功能)"
                @close="closeDialog"
                :before-close = "handleClose"
                :visible.sync="visible"> <!-- 表单是否显示 -->
                    <div style="min-height: 600px;"  @click.self="handleChange">
-                     <el-button @click="submitData('确认')" type="danger" style="float: right;margin: 5px;">样品确认</el-button>
+                     <el-button @click="submitData('确认')" type="primary" style="float: right;margin: 5px;">样品确认</el-button>
                      <!--<el-button @click="submitData('入库确认')" type="primary" style="float: right;margin: 5px;">入库确认</el-button>-->
                         <el-table
                            :data="listData"
@@ -77,7 +77,7 @@
                               />
                              </template>
                          </el-table-column>
-<!-- 
+<!--
                                 store="id" -->
                          <el-table-column
                            label="留样存放位置"
@@ -104,16 +104,10 @@
                                   </el-option>
                                 </el-select>
 
-                              <!-- <el-input
-                               v-model="scope.row.jie_yang_zhuang_t">
-                               </el-input> -->
                              </template>
 
                          </el-table-column>
 
-
-
-
                          <el-table-column label="功能">
                                  <template slot-scope="scope">
                                      <el-button

+ 318 - 0
src/views/system/jbdScan/js/manualConfirmationJS.js

@@ -0,0 +1,318 @@
+import repostCurd from '@/business/platform/form/utils/custom/joinCURD.js'
+
+export default {
+  methods: {
+    /* 唤醒扫码 前端脚本直接调用
+    openRedar(type) {
+      this.redar = true               // 扫码图标显示
+      this.visible = false            // 结果列表,一开始为false
+      this.$refs.redarInput.focus();  // 聚焦input
+      this.listData = []              // 清空列表
+      console.log(888)
+    },*/
+    facilityData() {
+      // if (!id) return // 无参直接反
+      this.loadData()
+      //开始查询设备
+      // this.facilityId = ''
+    },
+    /* 获取数据 ,开始查阅记录 */
+    loadData() {
+      // 扫码扫到新数据,查询 回填展示
+         repostCurd('select','{"tableName": "t_mjypdjb","paramWhere":{"jie_yang_zhuang_t":"待确认"}}').then(response => {
+          if (response.variables.data && response.variables.data.length > 0) {
+              console.log(response.variables.data)
+              // response.variables.data[0].jie_yang_shu_lian = 1
+              for(let i in response.variables.data){
+                response.variables.data[i].jie_yang_shu_lian = 1
+                this.listData.push(response.variables.data[i])
+                this.OriginalPosition.push(response.variables.data[i].shi_fou_liu_yang_ == "是" ? response.variables.data[i].liu_yang_wei_zhi_ : response.variables.data[i].shou_yang_wei_zhi)
+              }
+          }
+        })
+    },
+    /* 列表失去焦点*/
+    handleChange(){
+        this.$refs.redarInput.focus(); //聚焦input
+    },
+    /* 关闭弹出列表框*/
+    closeDialog() {
+      this.remRedar()
+      //回传关闭事件。隐藏当前组件。
+    },
+    handleClose(){
+      this.handleChange()
+      this.$confirm('确认关闭扫码列表页面?').then(_ => {
+         this.closeDialog();
+      }).catch(_ => {
+      });
+      },
+
+    submitData(type) {
+      // this指针
+      let this_ = this;
+      // 回传关闭事件。隐藏当前组件。
+      let judge = true;
+        this.$confirm('请再次确认 [样品接收信息]').then(_ => {
+          // 获取样品列表
+          let ypInfoList = this_.listData
+          console.log(ypInfoList)
+
+            let dWhere = []
+            let ypbh = []
+            let cfwzIdList = [] // 放置 存放位置的ID
+            let uuidList = [] // 列表的UUID
+
+            let ypIdList = []             // 样品id列表,格式转好的
+            let ypWeiZhi = []             // 样品收样位置
+            let ypLiuYangWeiZhi = []      // 样品留样位置
+            let saoMaNumList = []         // 扫码确认数量列表
+            let jieYangQueRenZTList = []  // 接样状态列表
+
+            let ypbhList = []   // 样品编号列表
+            let mjypbList = [] // 明鉴样品表
+            let mjypbWJ = [] // 明鉴样品表外键
+
+            for(let yp in ypInfoList){
+              let cfwz = ''
+              if(ypInfoList[yp].jie_yang_shu_lian > ypInfoList[yp].shou_yang_shu_lia){
+                 this_.$message.error('操作失败,['+ypInfoList[yp].yang_pin_ming_che+'] 接收确认数量不得大于收样数量。')
+                 return;
+              }
+              if(ypInfoList[yp].jie_yang_zhuang_t == '待确认'){
+                this_.$message.error('操作失败,['+ypInfoList[yp].yang_pin_ming_che+'] 接收确认状态必须为已接收。')
+                return;
+              }
+              if(ypInfoList[yp].shi_fou_liu_yang_ == "是"){
+                if(ypInfoList[yp].liu_yang_wei_zhi_ == null || ypInfoList[yp].liu_yang_wei_zhi_ == ''){
+                  this_.$message.error("你要留样的话,存放位置不能为空哦!")
+                  return;
+                }
+                if(ypInfoList[yp].shou_yang_wei_zhi != ''){
+                  this_.$message.error("你要留样的话,就不要选收样存放位置!")
+                  return;
+                }
+                let isLy = ypInfoList[yp].liu_yang_wei_zhi_
+                if(isLy.substr(-2,isLy.length -1) == "占用" || isLy.substr(-2,isLy.length -1) == "空余"){
+                  let sql = "select `id` from MJ_yp_position_status where positionAndStatus = '" + isLy + "' limit 1"
+                   repostCurd('sql',sql).then(response=>{
+                     cfwz = response.variables.data[0].id
+                     ypInfoList[yp].liu_yang_wei_zhi_ = cfwz
+                     console.log('?question time')
+                   })
+                }else{
+                  cfwz = ypInfoList[yp].liu_yang_wei_zhi_
+                }
+
+              }else{
+                if(ypInfoList[yp].shou_yang_wei_zhi == null || ypInfoList[yp].shou_yang_wei_zhi == ''){
+                  this_.$message.error("你正常收样的话,样品存放位置不能为空哦!")
+                  return;
+                }
+                if(ypInfoList[yp].liu_yang_wei_zhi_ != ''){
+                  this_.$message.error("你正常收样的话,就不要选择留样存放位置!")
+                  return;
+                }
+                let isZC = ypInfoList[yp].shou_yang_wei_zhi
+                if(isZC.substr(-2,isZC.length -1) == "占用" || isZC.substr(-2,isZC.length -1) == "空余"){
+                  let sql = "select `id` from MJ_yp_position_status where positionAndStatus = '" + isZC + "' limit 1"
+                   repostCurd('sql',sql).then(response=>{
+                     cfwz = response.variables.data[0].id
+                     ypInfoList[yp].shou_yang_wei_zhi = cfwz
+                     console.log('?question time')
+                   })
+                }else{
+                  cfwz = ypInfoList[yp].shou_yang_wei_zhi
+                }
+              }
+              dWhere.push('{"id_":"' + cfwz + '"}')
+              ypbh.push(ypInfoList[yp].yang_pin_bian_hao)
+              uuidList.push(ypInfoList[yp].biao_zhi_uuid_)
+              cfwzIdList.push(cfwz)
+
+              ypIdList.push('{"id_":"' + ypInfoList[yp].id_ + '"}')
+              ypWeiZhi.push(ypInfoList[yp].shou_yang_wei_zhi)		            // 收样存放位置
+              ypLiuYangWeiZhi.push(ypInfoList[yp].liu_yang_wei_zhi_)	      // 留样存放位置
+              saoMaNumList.push(ypInfoList[yp].jie_yang_shu_lian)           // 扫码数量
+              jieYangQueRenZTList.push(ypInfoList[yp].jie_yang_zhuang_t)    // 接收确认状态
+
+              ypbhList.push('{"yang_pin_bian_hao":"' + ypInfoList[yp].yang_pin_bian_hao + '"}') // 样品编号列表
+            }
+              for(let index in ypIdList){
+                let WZtem = ypWeiZhi[index]==null?'':ypWeiZhi[index]
+                let LYWZtem = ypLiuYangWeiZhi[index]==null?'':ypLiuYangWeiZhi[index]
+                repostCurd('update','{"tableName":"t_mjypdjb","paramWhere":'+ypIdList[index]+',"paramCond":'+'{"shou_yang_wei_zhi":"'+WZtem+'","jie_yang_shu_lian":"'+saoMaNumList[index]+'","jie_yang_zhuang_t":"'+jieYangQueRenZTList[index]+'","liu_yang_wei_zhi_":"'+ LYWZtem + '"}}')
+            }
+            for(let num in dWhere){
+              if(this.OriginalPosition[num] != cfwzIdList[num]){
+                let sql = "select * from t_mjypcfwz where id_ = '" + cfwzIdList[num] + "'"
+                repostCurd('sql',sql).then(response=>{
+                    let resArr = response.variables.data
+                    if(resArr.length == 1){
+                        if(resArr[0].wei_zhi_zhuang_ta == "空余"){
+                          repostCurd('update','{"tableName":"t_mjypcfwz","paramWhere":'+dWhere[num]+',"paramCond":'+'{"wei_zhi_zhuang_ta":"占用","yang_pin_bian_hao":"'+ ypbh[num] + '","ru_ku_shi_jian_":"'+ this_.dateFormat() + '","shou_yang_ri_qi_":"'+ uuidList[num] + '"}}')
+                        }else if(resArr[0].wei_zhi_zhuang_ta == "占用"){
+                          // 新增一条新的位置记录,使用旧的位置记录 修改它的样品编号,入库时间,标识UUID
+                                let cfNewList = []
+                                let cfNew = {}
+                                cfNew["fang_jian_lei_xin"] = resArr[0].fang_jian_lei_xin
+                                cfNew["huo_jia_lei_xing_"] = resArr[0].huo_jia_lei_xing_
+                                cfNew["huo_jia_hao_"] = resArr[0].huo_jia_hao_
+                                cfNew["qu_yu_"] = resArr[0].qu_yu_
+                                cfNew["gua_jia_hao_"] = resArr[0].gua_jia_hao_
+                                cfNew["ceng_hao_"] = resArr[0].ceng_hao_
+                                cfNew["wei_zhi_bian_hao_"] = resArr[0].wei_zhi_bian_hao_
+                                cfNew["wei_zhi_zhuang_ta"] = resArr[0].wei_zhi_zhuang_ta
+                                cfNew["cun_fang_lei_xing"] = resArr[0].cun_fang_lei_xing
+                                cfNew["cun_chu_tiao_jian"] = resArr[0].cun_chu_tiao_jian
+                                cfNew["yang_pin_bian_hao"] = ypbh[num]
+                                cfNew["ru_ku_shi_jian_"] = this_.dateFormat()
+                                cfNew["shou_yang_ri_qi_"] = uuidList[num]
+                                cfNewList.push(cfNew)
+                              repostCurd('add','{"tableName":"t_mjypcfwz","paramWhere":'+JSON.stringify(cfNewList)+'}')
+                        }
+                    }
+                })
+              }
+
+            }
+             repostCurd('selects','{"tableName":"t_mjypb","paramWhere":['+ypbhList+']}').then(response=>{
+               mjypbList = response.variables.data
+               let wjList = []
+               let wjAll  = []
+               let wjAllList = []
+               for(let i in mjypbList){
+                  wjList.push(mjypbList[i].wai_jian_)
+                  wjAll.push(mjypbList[i].wai_jian_)
+               }
+               wjList = this_.unique(wjList)
+               for(let i in wjList){
+                  mjypbWJ.push('{"id_":"' + wjList[i]+ '"}')
+               }
+               for(let i in wjAll){
+                  wjAllList.push('{"id_":"' + wjAll[i]+ '"}')
+               }
+                  repostCurd('updates','{"tableName":"t_mjwtsqb","paramWhere":['+mjypbWJ+'],"paramCond":{"zhuang_tai_":"委托结束"}}')
+                 let mjwtsqbAllResult = []
+                 let mjwtsqbIdList = []
+                for(let i in wjAllList){
+                  repostCurd('select','{"tableName":"t_mjwtsqb","paramWhere":'+wjAllList[i]+'}').then(response=>{
+                         mjwtsqbAllResult.push(response.variables.data[0])
+                         mjwtsqbIdList.push('{"id_":"' + response.variables.data[0].id_ + '"}')
+                        })
+                }
+
+             setTimeout(()=>{
+               let rwb = []
+               for(var i in mjypbList){
+                let str =  mjypbList[i].jian_ce_xiang_mu2.split(",")
+                  for(var p in str){
+                  let rwzb = {}
+                    let wz_ = ypInfoList[i].shi_fou_liu_yang_ == "是" ? ypInfoList[i].liu_yang_wei_zhi_ : ypInfoList[i].shou_yang_wei_zhi   	  //	对应的样品存放位置
+                    rwzb["jian_ce_xiang_mu_"] = str[p] 			  	                //	取当前检测项目
+                    rwzb["yang_pin_bian_hao"] = mjypbList[i].yang_pin_bian_hao 	//	取对应的样品编号
+                    rwzb["yang_pin_ming_che"] = mjypbList[i].yang_pin_ming_che   //	对应的样品名称
+                    rwzb["yang_pin_dai_ci_"] = mjypbList[i].dai_ci_   			      //	对应的样品代次
+                    rwzb["yang_pin_pi_hao_"] = mjypbList[i].pi_hao_   			      //	对应的样品批号
+                    rwzb["yang_pin_shu_lian"] = mjypbList[i].shu_liang_   		    //	对应的样品数量
+                    rwzb["bug_ri_qi_"] = mjypbList[i].song_yang_ri_qi_   	      //  对应的送样日期
+                    rwzb["cun_fang_wei_zhi_"] = wz_
+                    rwzb["wei_tuo_wai_jian_"] = mjypbList[i].wai_jian_ 			    //	检测申请单id
+                    rwzb["he_tong_wai_jian_"] = mjwtsqbAllResult[i].he_tong_bian_hao_    //合同id
+                    rwzb["song_yang_ri_qi_"] = mjypbList[i].biao_zhi_uuid_       //收样日期
+                    rwzb["wei_tuo_ren_"] =   mjwtsqbAllResult[i].lian_xi_ren_  //委托人
+                    rwzb["bao_gao_jian_ce_s"] =  this_.dateFormat()   //检测时间
+                    rwzb["zhan_shi_biao_wai"] = mjwtsqbAllResult[i].ye_mian_zong_zhua
+                    rwzb["zhuang_tai_"] = "任务待分配"			//	状态
+                    rwb.push(rwzb)
+                  }
+               }
+               repostCurd('updates', '{"tableName":"t_mjwtsqb","paramWhere":['+mjwtsqbIdList+'],"paramCond":{"jian_ce_kai_shi_s":"' + this_.dateFormat() + '"}}')
+               let uidList = []
+               for(let item of mjwtsqbAllResult){
+                 uidList.push(item.ye_mian_zong_zhua)
+               }
+               uidList = this_.unique(uidList)
+               repostCurd('add', '{"tableName":"t_rwfpb","paramWhere":'+JSON.stringify(rwb)+',"defKey":"Process_04tgh24","formKey":"mjrwfp"}' )
+                 if(uidList.length > 0 ){
+                   let ups = []
+                   for(let t of uidList){
+                     ups.push('{"shen_qing_id_":"'+t+'"}')
+                   }
+                   repostCurd('updates', '{"tableName":"t_mjwtzsb","paramWhere":['+ups+'],"paramCond":{"zhuang_tai_":"任务分配进行中"}}')
+                 }
+             },2000)
+             })
+                  this.$emit('callback',true)
+                  this.visable = false
+                  this.$message({
+                    message:'样品接收确认操作成功!',
+                    type:'success'
+                  })
+                  this.closeDialog();
+                  }).catch(_ => {});
+    },
+    /* 去除指定行数据 使用过滤器filter过滤指定行号数据 */
+    deleteData(val){
+      this.listData = this.listData.filter((data) =>{
+            return data.id_!=val
+        })
+    },
+
+    unique(arr) {
+      return arr.filter((item, index) => {
+        return arr.indexOf(item, 0) === index;
+      });
+    },
+   /* 提交数据
+    commitData(val){
+      for(let item of val) {
+             let dataWhere = [] //ajax的修改字段
+             dataWhere.push('{"tableName":"t_gdyrqcyp" + "," + "paramWhere":"id_:'+item.id_ +'" +","+    "shu_liang_":"'+ item.shu_liang_ +'"  +","+  "lingYongRen":"' + item.ling_yong_ren_ + '"  +","+  "cunFangWeiZhi":"' + item.cun_fang_wei_zhi_ + '"  +","+  "sign":"out"}')
+               // dataWhere.push('{"yangPinBianHao":"'+ item.yang_pin_bian_hao +'"  +","+  "lingYongRen":"' + item.ling_yong_ren_ + '"  +","+  "cunFangWeiZhi":"' + item.cun_fang_wei_zhi_ + '"  +","+  "shuLiang":"' + item.shu_liang_ + '"}')
+
+            // repostCurd('updateSample',"{data:'"+JSON.stringify(dataWhere)+"'}").then(response =>{
+            //   console.log(response)
+            // })
+
+            // this.Update('t_gdyrqcyp',{"id_":item.id_},"{data:'"+JSON.stringify(dataWhere)+"'}").then(response => {
+            //            this.$emit('callback', true)
+            //            this.visible = false
+            //            this.$message({
+            //                      message: '样品出库操作成功!',
+            //                      type: 'success'
+            //                    });
+            //          })
+               }
+    },*/
+    Update (name,where,cond) {
+    	  let cont = {}
+    	  cont['tableName'] = name
+    	  cont['paramWhere'] = where
+    	  cont['paramCond'] = cond
+    	  return repostCurd('update',JSON.stringify(cont))
+    	},
+
+    /* zzj add */
+     dateFormat() { // 获取当前时间
+        var date=new Date();
+        var year=date.getFullYear();
+        var month= date.getMonth()+1<10 ? "0"+(date.getMonth()+1) : date.getMonth()+1;
+        var day=date.getDate()<10 ? "0"+date.getDate() : date.getDate();
+        var hours=date.getHours()<10 ? "0"+date.getHours() : date.getHours();
+        var minutes=date.getMinutes()<10 ? "0"+date.getMinutes() : date.getMinutes();
+        var seconds=date.getSeconds()<10 ? "0"+date.getSeconds() : date.getSeconds();
+        return year+"-"+month+"-"+day+" ";
+    },
+
+
+    /* 关闭*/
+    remRedar() {
+      this.visible = false  // 列表隐藏
+      this.listData = []    // 清空列表数据
+      this.redar = false    // 扫码图标隐藏
+      this.$emit('scanOff',false)
+    },
+
+  }
+}

+ 12 - 1
src/views/system/jbdScan/js/sampleConfirmationJS.js

@@ -1,5 +1,4 @@
 import repostCurd from '@/business/platform/form/utils/custom/joinCURD.js'
-import { sampleWZ } from '@/api/detection/universalCRUD.js' // 封装的接口文件
 
 export default {
   methods: {
@@ -89,11 +88,19 @@ export default {
                  this_.$message.error('操作失败,['+ypInfoList[yp].yang_pin_ming_che+'] 接收确认数量不得大于收样数量。')
                  return;
               }
+              if(ypInfoList[yp].jie_yang_zhuang_t == '待确认'){
+                this_.$message.error('操作失败,['+ypInfoList[yp].yang_pin_ming_che+'] 接收确认状态必须为已确认。')
+                return;
+              }
               if(ypInfoList[yp].shi_fou_liu_yang_ == "是"){
                 if(ypInfoList[yp].liu_yang_wei_zhi_ == null || ypInfoList[yp].liu_yang_wei_zhi_ == ''){
                   this_.$message.error("你要留样的话,存放位置不能为空哦!")
                   return;
                 }
+                if(ypInfoList[yp].shou_yang_wei_zhi != ''){
+                  this_.$message.error("你要留样的话,就不要选收样存放位置!")
+                  return;
+                }
                 let isLy = ypInfoList[yp].liu_yang_wei_zhi_
                 if(isLy.substr(-2,isLy.length -1) == "占用" || isLy.substr(-2,isLy.length -1) == "空余"){
                   let sql = "select `id` from MJ_yp_position_status where positionAndStatus = '" + isLy + "' limit 1"
@@ -111,6 +118,10 @@ export default {
                   this_.$message.error("你正常收样的话,样品存放位置不能为空哦!")
                   return;
                 }
+                if(ypInfoList[yp].liu_yang_wei_zhi_ != ''){
+                  this_.$message.error("你正常收样的话,就不要选择留样存放位置!")
+                  return;
+                }
                 let isZC = ypInfoList[yp].shou_yang_wei_zhi
                 if(isZC.substr(-2,isZC.length -1) == "占用" || isZC.substr(-2,isZC.length -1) == "空余"){
                   let sql = "select `id` from MJ_yp_position_status where positionAndStatus = '" + isZC + "' limit 1"

+ 2 - 1
src/views/system/jbdScan/scan.vue

@@ -14,9 +14,10 @@ import facility from './goods/facility'
 import material from './goods/material'
 import sample from './goods/sample'
 import sampleConfirmation from './goods/sampleConfirmation'
+import manualConfirmation from './goods/manualConfirmation'
 
 export default {
-  components: { facility,material,sample,sampleConfirmation},
+  components: { facility,material,sample,sampleConfirmation,manualConfirmation},
   props:{
     currentScan:String,
     scanVisible:Boolean