فهرست منبع

Merge branch 'master' of http://119.23.210.103:3000/wy/mj_firm_former

cfort 3 سال پیش
والد
کامیت
5e4e2118ba
3فایلهای تغییر یافته به همراه686 افزوده شده و 242 حذف شده
  1. 117 137
      src/views/component/yangpinchuzhijianbi.vue
  2. 538 0
      src/views/component/yangpinchuzhiliuyang.vue
  3. 31 105
      src/views/sample/reservedSample.vue

+ 117 - 137
src/views/component/weizhiData.vue → src/views/component/yangpinchuzhijianbi.vue

@@ -1,26 +1,51 @@
 <template>
   <div class="sample-content">
+    <!-- 表格組件 -->
     <!-- 表格組件 -->
     <div class="selectPo" @click="positionBtn">
       <el-input type="text" v-model="placeValue" clearable></el-input>
       <input type="text" v-model="value" style="opacity: 0; position: fixed" />
     </div>
-   <div class="viewArea" v-if="viewShow">
+    <div class="viewArea" v-if="viewShow">
       <h2 class="title">样品间样品存放位置可视图</h2>
       <div class="close" @click="positionBtn"><i class="el-icon-circle-close"></i></div>
+      <div class="query-content" v-if="viewShow">
+        <el-form :inline="true" :model="formInline" class="demo-form-inline">
+          <el-form-item label="房间号:">
+            <el-select v-model="formInline.fang_jian_hao_value" placeholder="请选择样品">
+              <el-option v-for="(item, index) in sampleOption" :key="index" placeholder="区域" :label="item.fang_jian_lei_xin" :value="item.fang_jian_lei_xin"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item v-show="leixingcare" style="margin-left: 50px" prop="title" label="区域名称:">
+            <el-select v-model="formInline.qu_yu_value" placeholder="请选择区域名称">
+              <el-option v-for="(item, index) in quyu_arr" :key="index" placeholder="区域" :label="item.qu_yu_" :value="item.qu_yu_"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item style="margin-left: 50px" label="货架号:">
+            <el-select v-model="formInline.huo_jia_value" placeholder="请选择货架号">
+              <el-option v-for="(item, index) in huo_jia_arr" :key="index" placeholder="区域" :label="item.huo_jia_hao_ + '号' + item.huo_jia_lei_xing_" :value="item.huo_jia_hao_ + '号' + item.huo_jia_lei_xing_"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item v-show="!leixingcare" style="margin-left: 50px" label="挂件号:">
+            <el-select v-model="formInline.gua_jia_value" placeholder="请选择挂件号">
+              <el-option v-for="(item, index) in gua_jia_arr" :key="index" placeholder="区域" :label="item.gua_jia_hao_ + '号' + '挂件'" :value="item.gua_jia_hao_ + '号' + '挂件'"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <button type="button" class="el-button el-button--primary el-button--mini" @click="onSubmits">
+              <i class="ibps-icon-search"></i><span>查询</span>
+            </button>
+          </el-form-item>
+        </el-form>
+      </div>
+
       <div class="select_quyu" v-if="viewShow">
         <div class="test-quyu" v-if="leixingcare">
           <div class="test-list">
             <ul class="list-items">
-              <li
-                class="list-item quyu-item"
-                :style="{
-                  background: quyuShow == item.qu_yu_ ? '#FF9900' : '#0099CC',
-                }"
-                @click="qu_yu_Event"
-                v-for="item in quyu_arr"
-                :key="item.qu_yu_"
-              >
+              <li class="list-item quyu-item" :style="{
+                background: quyuShow == item.qu_yu_ ? '#FF9900' : '#0099CC',
+              }" @click="qu_yu_Event" v-for="item in quyu_arr" :key="item.qu_yu_">
                 {{ item.qu_yu_ }}
               </li>
             </ul>
@@ -29,19 +54,13 @@
         <div class="huojia">
           <div class="test-list">
             <ul class="list-items">
-              <li
-                class="list-item huojia-item"
-                :style="{
-                  background:
-                    huojiashow ==
-                    item.huo_jia_hao_ + '号' + item.huo_jia_lei_xing_
-                      ? '#ff9900'
-                      : '#0099cc',
-                }"
-                @click="huo_jia_hao_Event"
-                v-for="(item, index) in huo_jia_arr"
-                :key="index"
-              >
+              <li class="list-item huojia-item" :style="{
+                background:
+                  huojiashow ==
+                  item.huo_jia_hao_ + '号' + item.huo_jia_lei_xing_
+                    ? '#ff9900'
+                    : '#0099cc',
+              }" @click="huo_jia_hao_Event" v-for="(item, index) in huo_jia_arr" :key="index">
                 {{ item.huo_jia_hao_ }}号{{ item.huo_jia_lei_xing_ }}
               </li>
             </ul>
@@ -50,18 +69,12 @@
         <div class="huojia">
           <div class="test-list" v-show="!leixingcare">
             <ul class="list-items">
-              <li
-                class="list-item huojia-item"
-                :style="{
-                  background:
-                    guajiashow == item.gua_jia_hao_ + '号挂件'
-                      ? '#FF9900'
-                      : '#e5baba',
-                }"
-                @click="gua_jia_Event"
-                v-for="(item, index) in gua_jia_arr"
-                :key="index"
-              >
+              <li class="list-item huojia-item" :style="{
+                background:
+                  guajiashow == item.gua_jia_hao_ + '号挂件'
+                    ? '#FF9900'
+                    : '#e5baba',
+              }" @click="gua_jia_Event" v-for="(item, index) in gua_jia_arr" :key="index">
                 {{ item.gua_jia_hao_ }}号挂件
               </li>
             </ul>
@@ -71,61 +84,36 @@
       <div class="body-content" v-if="viewShow" v-loading="loading">
         <div class="right-view">
           <div class="goods-items">
-            <div
-              class="show-demo"
-              v-for="(item, index) in listData"
-              :key="item"
-            >
+            <div class="show-demo" v-for="(item, index) in listData" :key="index">
               <div @click="positionClick(listData[index])">
                 <div class="goods-level">
                   <div class="level-dsc">第{{ index }}层</div>
                   <div class="goods-list">
-                    <div
-                      class="goods-dsc"
-                      v-for="(it, ind) in listData[index]"
-                      :key="ind"
-                      :style="{
-                        background:
-                          it.wei_zhi_zhuang_ta == '空余' ? '#67c23a' : '',
-                      }"
-                    >
+                    <div class="goods-dsc" v-for="(it, ind) in listData[index]" :key="ind" :style="{
+                      background:
+                        it.yang_pin_bian_hao ? '#67c23a' : '',
+                    }">
                       <div class="top-dsc">
                         <div class="position">
-                          <!-- <p>位置id:{{ it.shou_yang_wei_zhi }}</p>
-                          <p>货位id:{{ it.id_ }}</p>                          -->
-                          <p>样品名称:{{ it.yang_pin_ming_che}}</p>
-                          <p>位置编号:{{ it.wei_zhi_bian_hao_ }}</p>
+                          <p v-if="it.wei_zhi_zhuang_ta == '空余'">位置状态:{{it.wei_zhi_zhuang_ta }}</p>
+                          <p v-else>样品名称:{{ it.yang_pin_ming_che}}</p>
                           <p>样品编号:{{ it.yang_pin_bian_hao }}</p>
-                          <p>位置状态:{{ it.wei_zhi_zhuang_ta }}</p>
-                          <p>
-                            存储条件:{{
-                              it.cun_chu_tiao_jian || it.cun_chu_yao_qiu_
-                            }}
-                          </p>
+                          <p>存放位置:{{ it.wei_zhi_bian_hao_ }}</p>
+                          <p>存储条件:{{ it.cun_chu_tiao_jian || it.cun_chu_yao_qiu_}}</p>
+                          <p>留样期限:{{ it.liu_yang_qi_xian_ }}</p>
                         </div>
                       </div>
-                      <div class="bottom-dsc" v-if="false">
-                        {{ it.yang_pin_ming_che || it.wei_zhi_zhuang_ta }}
-                      </div>
                     </div>
                   </div>
                 </div>
               </div>
-
-            </div>
-
-
-          </div>
-          <div
-            class="goodshelf-name"
-            style="height: 500px;font-size:20px;text-align:center"
-            >
+              <div class="goodshelf-name" v-if="index == 1">
                 {{ desString }}
+              </div>
             </div>
+          </div>
         </div>
-        
       </div>
-
     </div>
   </div>
 </template>
@@ -158,30 +146,26 @@ export default {
       cenghao: [],
       warehouse: [],
       loading: false,
-      // pagination: {},
-      // secondshow: false,
       desString: "",
+      placeValue: "点击选择位置",
+      value:'',
       viewShow: false,
-      placeValue: "选择位置",
       loading: true,
-      samplearr:[],
     };
   },
-  props: {
-    value: {
-      type: [String, Number, Array, Object],
-      default: "",
-    },
-  },
   filters: {
-    specimenFilters: function (values) {
-      if (values == "空余") {
+    specimenFilters: function (value) {
+      if (value == "空余") {
         return "未占用";
       } else {
-        return values;
+        return value;
       }
     },
   },
+  created() {
+    this.loadQueryData();
+    this.firstLoadViewData();
+  },
   methods: {
     firstLoadViewData() {
       var this_ = this;
@@ -202,11 +186,9 @@ export default {
       //查询选择数据查询
       var sqlString =
         "select distinct fang_jian_lei_xin from t_mjypcfwz WHERE fang_jian_lei_xin !=''";
-      // var sqlString = "select * from t_mjypcfwz";
       var this_ = this;
       curdPost("sql", sqlString).then((response) => {
         this_.sampleOption = response.variables.data;
-        this_.sampleOption.pop();
       });
     },
     onSubmits(sql) {
@@ -239,36 +221,41 @@ export default {
       curdPost("sql", sql).then((res) => {
         datas = res.variables.data;
         datas.forEach((item) => {
-          let yangpingSql ="select * from t_mjypdjb WHERE yang_pin_bian_hao = '" +item.yang_pin_bian_hao +"'";  // 通过样品货位配置的id外键 查询样品登记表
-          if (!labelsMap[item.ceng_hao_]) {           
-            labelsMap[item.ceng_hao_] = [];//没有就创建
-            curdPost("sql", yangpingSql).then((res) => {
-              if (res.variables.data.length > 0) {
-                let data = res.variables.data;
-                item['yang_pin_ming_che'] = data[0].yang_pin_ming_che;
-                labelsMap[item.ceng_hao_].push(item);
-              }else{
-                labelsMap[item.ceng_hao_].push(item);
-              }
-            });
+          if (!labelsMap[item.ceng_hao_]) {
+            //没有就创建
+            labelsMap[item.ceng_hao_] = [];
+          }
+          // 通过样品货位配置的id外键 查询样品登记表
+          console.log(this_.formInline.fang_jian_hao_value);
+          let yangpingSql = "";
+          if (this_.formInline.fang_jian_hao_value == "样品间") {
+            yangpingSql =
+              "select * from t_mjypdjb WHERE shou_yang_wei_zhi = '" +
+              item.id_ +
+              "'";
           } else {
-            curdPost("sql", yangpingSql).then((res) => {
-              if (res.variables.data.length > 0) {
-                let data = res.variables.data;
-                item['yang_pin_ming_che'] = data[0].yang_pin_ming_che;
-                labelsMap[item.ceng_hao_].push(item);
-              }else{
-                labelsMap[item.ceng_hao_].push(item);
-              }
-            });
+            yangpingSql =
+              "select * from t_mjypdjb WHERE liu_yang_wei_zhi_ = '" +
+              item.id_ +
+              "'";
           }
+
+          curdPost("sql", yangpingSql).then((res) => {
+            var resData = res.variables.data;
+            if (resData.length > 0) {
+              resData.forEach((it) => {
+                it.wei_zhi_bian_hao_ = item.wei_zhi_bian_hao_;
+                labelsMap[item.ceng_hao_].push(it);
+              });
+            } else {
+              labelsMap[item.ceng_hao_].push(item);
+            }
+          });
         });
         this_.listData = labelsMap;
         this.$nextTick(() => {
           this.loading = false;
         });
-
-        // this.loading = true;
       });
     },
     qu_yu_Event(e) {
@@ -301,7 +288,6 @@ export default {
       if (selectText.includes("冰箱")) {
         //如果是冰箱 请求样品货位配置信息 ->查询登记表
         var sql = `select * from t_mjypcfwz where fang_jian_lei_xin = '${this.formInline.fang_jian_hao_value}' and qu_yu_ = '${this.formInline.qu_yu_value}' and  huo_jia_lei_xing_ = '${huojialeixing}' and huo_jia_hao_ = '${huojiaNum}'`;
-        this.desString = this.formInline.fang_jian_hao_value +this.formInline.qu_yu_value + huojiaNum+huojialeixing
         this.queryLoad(sql);
       } else if (selectText.includes("液氮罐")) {
         //液氮罐 查询该液氮罐下所有的挂件
@@ -393,11 +379,6 @@ export default {
         }
       });
     },
-    placeValue: function (newdata, olddata) {
-      if (newdata == "" || newdata == null) {
-        this.$emit("input", "");
-      }
-    },
   },
 };
 </script>
@@ -413,21 +394,21 @@ p {
   top: 50;
   position: relative;
   background: white;
-    .close{
+  .close {
     position: fixed;
     right: 52px;
-    top:20px;
+    top: 20px;
     color: red;
-    z-index: 2147483647!important;
+    z-index: 2147483647 !important;
     font-size: 45px;
   }
-  .title{
-      width: 100%;
-     height: 14px;
-     line-height: 24px;
-     font-size: 24px;
-     text-align: center;
-    }
+  .title {
+    width: 100%;
+    height: 30px;
+    line-height: 24px;
+    font-size: 24px;
+    text-align: center;
+  }
   .selectPo {
     cursor: pointer;
     z-index: 9;
@@ -488,18 +469,17 @@ p {
     margin-bottom: 20px;
     display: flex;
     box-sizing: border-box;
-    height: 100vh;
-    overflow-x: hidden;
-    overflow-y: scroll;
-    // .left-table {
-    //   // width: 40%;
-    //   ::v-deep .el-table {
-    //     width: 40%;
-    //   }
-    // }
+    // height: 600px;
+    // overflow-x: hidden;
+    // overflow-y: scroll;
     .right-view {
       z-index: 99;
       width: 100%;
+      height: calc(100vh - 213px);
+      overflow: scroll;
+      padding-bottom: 20px;
+      overflow-x: hidden;
+      
       .goods-items {
         width: 100%;
         border: solid 2px rgb(202, 236, 247);
@@ -533,7 +513,7 @@ p {
               cursor: pointer;
               padding: 2px 6px;
               border-radius: 5px;
-              background: #E6A23C;
+              background: #e6a23c;
               margin-left: 12px;
               margin-top: 6px;
               // box-sizing: border-box;

+ 538 - 0
src/views/component/yangpinchuzhiliuyang.vue

@@ -0,0 +1,538 @@
+<template>
+  <div class="sample-content">
+    <!-- 表格組件 -->
+    <div class="selectPo" @click="positionBtn">
+      <el-input type="text" v-model="placeValue" clearable></el-input>
+      <!-- <div>{{ placeValue }}</div> -->
+      <input type="text" v-model="value" style="opacity: 0; position: fixed" />
+    </div>
+    <div class="viewArea" v-if="viewShow">
+      <h3 class="title">留样间样品存放位置可视图</h3>
+      <div class="close" @click="positionBtn">
+        <i class="el-icon-circle-close"></i>
+      </div>
+      <div class="select_quyu" v-if="viewShow">
+        <div class="test-quyu" v-if="leixingcare">
+          <div class="test-list">
+            <ul class="list-items">
+              <li class="list-item quyu-item" :style="{
+                  background: quyuShow == item.qu_yu_ ? '#FF9900' : '#0099CC',
+                }" @click="qu_yu_Event" v-for="item in quyu_arr" :key="item.qu_yu_">
+                {{ item.qu_yu_ }}
+              </li>
+            </ul>
+          </div>
+        </div>
+        <div class="huojia">
+          <div class="test-list">
+            <ul class="list-items">
+              <li class="list-item huojia-item" :style="{
+                  background:
+                    huojiashow ==
+                    item.huo_jia_hao_ + '号' + item.huo_jia_lei_xing_
+                      ? '#ff9900'
+                      : '#0099cc',
+                }" @click="huo_jia_hao_Event" v-for="(item, index) in huo_jia_arr" :key="index">
+                {{ item.huo_jia_hao_ }}号{{ item.huo_jia_lei_xing_}}
+              </li>
+            </ul>
+          </div>
+        </div>
+        <div class="huojia">
+          <div class="test-list" v-show="!leixingcare">
+            <ul class="list-items">
+              <li class="list-item huojia-item" :style="{
+                  background:
+                    guajiashow == item.gua_jia_hao_ + '号挂件'
+                      ? '#FF9900'
+                      : '#e5baba',
+                }" @click="gua_jia_Event" v-for="(item, index) in gua_jia_arr" :key="index">
+                {{ item.gua_jia_hao_ }}号挂件
+              </li>
+            </ul>
+          </div>
+        </div>
+      </div>
+      <div class="body-content" v-if="viewShow">
+        <div class="right-view">
+          <div class="goods-items">
+            <div class="show-demo" v-for="(item, index) in listData" :key="item">
+              <div @click="positionClick(listData[index])">
+                <div class="goods-level">
+                  <div class="level-dsc">第{{ index }}层</div>
+                  <div class="goods-list">
+                    <div class="goods-dsc" v-for="(it, ind) in listData[index]" :key="ind" :style="{
+                        background:
+                          it.wei_zhi_zhuang_ta == '空余' ? '#67c23a' : '',
+                      }">
+                      <div class="top-dsc">
+                        <div class="position">
+                          <p v-if="it.wei_zhi_zhuang_ta == '空余'">位置状态:{{it.wei_zhi_zhuang_ta }}</p>
+                          <p v-else>样品名称:{{ it.yang_pin_ming_che}}</p>
+                          <p>样品编号:{{ it.yang_pin_bian_hao }}</p>
+                          <p>存放位置:{{ it.wei_zhi_bian_hao_ }}</p>
+                          <p>存储条件:{{ it.cun_chu_tiao_jian || it.cun_chu_yao_qiu_}}</p>
+                          <p>留样期限:{{ it.liu_yang_qi_xian_ }}</p>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="goodshelf-name" style="height: 500px; font-size: 20px; text-align: center">
+            {{ desString }}
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import FixHeight from "@/mixins/height";
+import curdPost from "@/business/platform/form/utils/custom/joinCURD.js";
+export default {
+  mixins: [FixHeight],
+  data() {
+    return {
+      sampleOption: [],
+      formInline: {
+        fang_jian_hao_value: "",
+        qu_yu_value: "",
+        huo_jia_value: "",
+        gua_jia_value: "",
+      },
+      listData: [],
+      warehouseOptions: [],
+      quyu_arr: [],
+      huo_jia_arr: [],
+      gua_jia_arr: [],
+      firstLoadActive: true,
+      qu_yu_value: "",
+      quyuShow: "",
+      huojiashow: "",
+      guajiashow: "",
+      leixingcare: true,
+      cenghao: [],
+      warehouse: [],
+      loading: false,
+      desString: "",
+      viewShow: false,
+      placeValue: "选择位置",
+    };
+  },
+  props: {
+    value: {
+      type: [String, Number, Array, Object],
+      default: "",
+    },
+  },
+  filters: {
+    specimenFilters: function (values) {
+      if (values == "空余") {
+        return "未占用";
+      } else {
+        return values;
+      }
+    },
+  },
+  methods: {
+    firstLoadViewData() {
+      var this_ = this;
+      var sqlString = `select * from t_mjypcfwz where fang_jian_lei_xin = '留样间' and qu_yu_ = '' and  huo_jia_lei_xing_ = '冰箱' and huo_jia_hao_ = '1'`;
+      this.huojiashow = "1号冰箱";
+      this.quyuShow = "";
+      this.desString = "留样间" + "1号冰箱";
+      this.queryLoad(sqlString);
+      this.formInline.fang_jian_hao_value = "留样间";
+      this.formInline.qu_yu_value = "";
+      this.formInline.huo_jia_value = "1号冰箱";
+      let sql = `select distinct huo_jia_lei_xing_ ,huo_jia_hao_ from t_mjypcfwz where fang_jian_lei_xin = '留样间'  order by huo_jia_hao_ asc`;
+      curdPost("sql", sql).then((response) => {
+        this_.huo_jia_arr = response.variables.data;
+      });
+    },
+    loadQueryData() {
+      //查询选择数据查询
+      var sqlString =
+        "select distinct fang_jian_lei_xin from t_mjypcfwz WHERE fang_jian_lei_xin !=''";
+      var this_ = this;
+      curdPost("sql", sqlString).then((response) => {
+        this_.sampleOption = response.variables.data;
+        this_.sampleOption.pop();
+      });
+    },
+    onSubmits(sql) {
+      var fang_jian_ = this.formInline.fang_jian_hao_value;
+      var qu_yu = this.formInline.qu_yu_value;
+      var huo_jia_hao_ = this.formInline.huo_jia_value.substr(0, 1);
+      let huo_jia_lei_xing_ = this.formInline.huo_jia_value.substr(
+        2,
+        this.formInline.huo_jia_value.length
+      );
+      var gua_jia_hao = this.formInline.gua_jia_value.substr(0, 1);
+      var sql;
+      if (qu_yu != "") {
+        sql = `select * from t_mjypcfwz where fang_jian_lei_xin = '${fang_jian_}' and qu_yu_ = '${qu_yu}' and huo_jia_lei_xing_ = '${huo_jia_lei_xing_}' and huo_jia_hao_ = '${huo_jia_hao_}'`;
+      } else {
+        if (huo_jia_lei_xing_.includes("冰箱")) {
+          sql = `select * from t_mjypcfwz where fang_jian_lei_xin = '${fang_jian_}' and huo_jia_lei_xing_ = '${huo_jia_lei_xing_}' and huo_jia_hao_ = '${huo_jia_hao_}'`;
+        } else if (huo_jia_lei_xing_.includes("液氮罐")) {
+          sql = `select * from t_mjypcfwz where fang_jian_lei_xin = '${fang_jian_}' and huo_jia_lei_xing_ = '${huo_jia_lei_xing_}'  and huo_jia_hao_ = '${huo_jia_hao_}' and gua_jia_hao_= '${gua_jia_hao}'`;
+        }
+      }
+      this.queryLoad(sql);
+    },
+    queryLoad(sql) {
+      //根据样品信息货位查询相对应的样品登记表
+      var datas = [];
+      var labelsMap = {}; // map存储
+      var this_ = this;
+      this_.listData = [];
+      curdPost("sql", sql).then((res) => {
+        datas = res.variables.data;
+        datas.forEach((item) => {
+          let yangpingSql;
+          if (this_.formInline.fang_jian_hao_value == "样品间") {
+            yangpingSql =
+              "select * from t_mjypdjb WHERE shou_yang_wei_zhi = '" +
+              item.id_ +
+              "'";
+          } else {
+            yangpingSql =
+              "select * from t_mjypdjb WHERE liu_yang_wei_zhi_ = '" +
+              item.id_ +
+              "'";
+          }
+          yangpingSql =
+            "select * from t_mjypdjb WHERE yang_pin_bian_hao = '" +
+            item.yang_pin_bian_hao +
+            "'";
+          if (!labelsMap[item.ceng_hao_]) {
+            //没有就创建
+            labelsMap[item.ceng_hao_] = [];
+            curdPost("sql", yangpingSql).then((res) => {
+              if (res.variables.data.length > 0) {
+                let data = res.variables.data;
+                item["yang_pin_ming_che"] = data[0].yang_pin_ming_che;
+                labelsMap[item.ceng_hao_].push(item);
+              } else {
+                labelsMap[item.ceng_hao_].push(item);
+              }
+            });
+          } else {
+            curdPost("sql", yangpingSql).then((res) => {
+              if (res.variables.data.length > 0) {
+                let data = res.variables.data;
+                item["yang_pin_ming_che"] = data[0].yang_pin_ming_che;
+                labelsMap[item.ceng_hao_].push(item);
+              } else {
+                labelsMap[item.ceng_hao_].push(item);
+              }
+            });
+          }
+        });
+        this_.listData = labelsMap;
+      });
+    },
+    qu_yu_Event(e) {
+      //区间 留样 样品间 点击事件 查询相应的货架号->冰箱 赋值 huo_jia_hao_
+      this.huo_jia_arrEvent(e.target.innerText);
+      this.huojiashow = "";
+      this.guajiashow = "";
+      let sqlString = `select distinct huo_jia_hao_,huo_jia_lei_xing_ from t_mjypcfwz where fang_jian_lei_xin = '${this.formInline.fang_jian_hao_value}' and qu_yu_ = '${e.target.innerText}' order by huo_jia_hao_ asc`;
+      var this_ = this;
+      this.qu_yu_value = e.target.innerText;
+      this.quyuShow = e.target.innerText;
+      this.formInline.qu_yu_value = e.target.innerText;
+      curdPost("sql", sqlString).then((response) => {
+        this_.huo_jia_arr = response.variables.data;
+      });
+    },
+    huo_jia_hao_Event(e) {
+      //货架 冰箱 液氮罐点击事件
+      this.guajiashow = "";
+      let selectText = e.target.innerText;
+      this.guajiaarrEvent(selectText);
+      this.huojiashow = selectText;
+      let huojiaNum = selectText.substr(0, 1);
+      this.formInline.huo_jia_value = selectText;
+      let huojialeixing = this.formInline.huo_jia_value.substr(
+        2,
+        this.formInline.huo_jia_value.length
+      );
+      //区分是冰箱和液氮罐的点击事件
+      if (selectText.includes("冰箱")) {
+        //如果是冰箱 请求样品货位配置信息 ->查询登记表
+        var sql = `select * from t_mjypcfwz where fang_jian_lei_xin = '${this.formInline.fang_jian_hao_value}' and qu_yu_ = '${this.formInline.qu_yu_value}' and  huo_jia_lei_xing_ = '${huojialeixing}' and huo_jia_hao_ = '${huojiaNum}'`;
+        this.desString =
+          this.formInline.fang_jian_hao_value +
+          this.formInline.qu_yu_value +
+          huojiaNum +
+          huojialeixing;
+        this.queryLoad(sql);
+      } else if (selectText.includes("液氮罐")) {
+        //液氮罐 查询该液氮罐下所有的挂件
+        let sqlString = `select distinct gua_jia_hao_ from t_mjypcfwz where huo_jia_lei_xing_ = '液氮罐' and huo_jia_hao_ = '${huojiaNum}'  order by gua_jia_hao_ asc`;
+        var this_ = this;
+        curdPost("sql", sqlString).then((response) => {
+          this_.gua_jia_arr = response.variables.data;
+        });
+      }
+      this.formInline.huo_jia_value = selectText;
+    },
+    gua_jia_Event(e) {
+      //液氮罐挂件号点击事件 查询该液氮罐下该挂件的货位位置信息;
+      let selectText = e.target.innerText;
+      this.guajiashow = selectText;
+      let hguajiaNum = selectText.substr(0, 1);
+      var fang_jian_hao_value = this.formInline.fang_jian_hao_value;
+      var huo_jia_value = this.formInline.huo_jia_value;
+      var sql = `select * from t_mjypcfwz where fang_jian_lei_xin = '${fang_jian_hao_value}' and huo_jia_lei_xing_ = '液氮罐' and huo_jia_hao_ = '${huo_jia_value.substring(
+        0,
+        1
+      )}' and gua_jia_hao_= '${hguajiaNum}'`;
+      this.desString = fang_jian_hao_value + huo_jia_value + selectText;
+      this.queryLoad(sql);
+    },
+    huo_jia_arrEvent(quyu) {
+      let sqlString = `select distinct huo_jia_hao_,huo_jia_lei_xing_ from t_mjypcfwz where fang_jian_lei_xin = '${this.formInline.fang_jian_hao_value}' and qu_yu_ = '${quyu}'   order by huo_jia_hao_ asc`;
+      var this_ = this;
+      curdPost("sql", sqlString).then((response) => {
+        this_.huo_jia_arr = response.variables.data;
+        if (!this_.firstLoadActive) {
+          this_.formInline.huo_jia_value = "";
+        }
+        this_.firstLoadActive = false;
+      });
+    },
+    guajiaarrEvent(huojiaweizhi) {
+      let huojiaNum = huojiaweizhi.substr(0, 1);
+      let huojialeixing = huojiaweizhi.substr(2, huojiaweizhi.length);
+      if (huojiaweizhi.includes("冰箱")) {
+        this.gua_jia_arr = [];
+        return;
+      }
+      let sqlString = `select distinct gua_jia_hao_ from t_mjypcfwz where fang_jian_lei_xin = '留样间' and huo_jia_lei_xing_ = '${huojialeixing}' and huo_jia_hao_ = '${huojiaNum}'   order by gua_jia_hao_`;
+      var this_ = this;
+      curdPost("sql", sqlString).then((response) => {
+        this_.gua_jia_arr = response.variables.data;
+        this_.leixingcare = false;
+      });
+    },
+    positionBtn() {
+      this.loadQueryData();
+      this.firstLoadViewData();
+      this.viewShow = !this.viewShow;
+    },
+    positionClick(values) {
+      this.viewShow = !this.viewShow;
+      this.placeValue = values[0].wei_zhi_bian_hao_;
+      let this_ = this;
+      this_.$emit("input", values[0].id_); //传导
+    },
+  },
+  watch: {
+    placeValue: function (newdata, olddata) {
+      if (newdata == "" || newdata == null) {
+        this.$emit("input", "");
+      }
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.sample-content {
+  width: 100%;
+  top: 50;
+  position: relative;
+  background: white;
+  .close {
+    position: fixed;
+    right: 52px;
+    top: 20px;
+    color: red;
+    z-index: 999;
+    font-size: 45px;
+  }
+  .title {
+    width: 100%;
+    height: 14px;
+    line-height: 24px;
+    font-size: 24px;
+    text-align: center;
+  }
+  .selectPo {
+    cursor: pointer;
+    z-index: 9;
+  }
+  .top-content {
+    width: 100%;
+    .top-title {
+      text-align: center;
+      font-weight: bold;
+      width: 100%;
+      font-size: 18px;
+      line-height: 40px;
+    }
+
+    .query-content {
+      display: flex;
+      margin-left: 25px;
+    }
+  }
+  .viewArea {
+    position: fixed;
+    left: 0;
+    top: 0;
+    width: 100%;
+    background: white;
+    z-index: 2147483647 !important;
+  }
+  .select_quyu {
+    .test-quyu,
+    .huojia {
+      width: 100%;
+      .list-items {
+        display: flex;
+        cursor: pointer;
+        .quyu-item {
+          background: #0099cc;
+        }
+        .huojia-item {
+          background: #99ccff;
+        }
+        .list-item {
+          padding: 0px 10px;
+          background-color: rgb(206, 198, 164);
+          text-align: center;
+          line-height: 35px;
+          margin-left: 20px;
+          border-radius: 10px;
+        }
+      }
+      .cangku-mingchen {
+        width: 100%;
+        text-align: left;
+        margin-left: 50px;
+      }
+    }
+  }
+
+  .body-content {
+    margin-bottom: 20px;
+    display: flex;
+    box-sizing: border-box;
+    height: 100vh;
+    overflow-x: hidden;
+    overflow-y: scroll;
+    .right-view {
+      z-index: 99;
+      width: 100%;
+      .goods-items {
+        width: 100%;
+        border: solid 2px rgb(202, 236, 247);
+        display: flex;
+        flex-direction: column-reverse;
+        .show-demo {
+          width: 100%;
+          text-align: center;
+
+          .goods-level {
+            display: flex;
+            position: relative;
+            margin-bottom: 6px;
+          }
+          .level-dsc {
+            margin-top: 12px;
+            position: absolute;
+            bottom: 0;
+            left: 10px;
+          }
+          .goods-list {
+            display: flex;
+            flex-wrap: wrap-reverse;
+            align-content: flex-start;
+            margin-left: 50px;
+            margin-right: 15px;
+            .goods-dsc {
+              cursor: pointer;
+              padding: 2px 6px;
+              border-radius: 5px;
+              background: #e6a23c;
+              margin-left: 12px;
+              margin-top: 6px;
+              .top-dsc {
+                display: flex;
+                justify-content: space-between;
+                font-size: 12px;
+                line-height: 18px;
+                .position {
+                  width: 165px;
+                  overflow: hidden;
+                }
+                .position > p {
+                  text-align: left;
+                  color: #fbe8ff;
+                }
+                .right-content {
+                  display: flex;
+                  align-items: center;
+                  p {
+                    height: 18px;
+                    line-height: 18px;
+                    margin-left: 5px;
+                    color: #fbe8ff;
+                    text-align: left;
+                  }
+                }
+              }
+              .bottom-dsc {
+                width: 100%;
+                text-align: center;
+                font-size: 18px;
+                height: 45px;
+                line-height: 45px;
+                margin-top: 9px;
+                color: #fbe8ff;
+              }
+              .goods-demo {
+                display: block;
+                width: 70px;
+                height: 90px;
+                border: 1px solid rgb(10, 9, 8);
+                text-align: center;
+                margin: 0;
+              }
+              .goods-code {
+                text-align: center;
+                width: 100%;
+                height: 20px;
+                line-height: 20px;
+              }
+            }
+          }
+          .goodshelf-name {
+            margin: 15px 0px;
+          }
+          .shelf {
+            width: 100%;
+            height: 40px;
+            line-height: 40px;
+            text-align: center;
+          }
+        }
+      }
+    }
+  }
+}
+</style>
+
+

+ 31 - 105
src/views/sample/reservedSample.vue

@@ -157,46 +157,30 @@
                     :key="ind"
                     :style="{
                       background:
-                        it.yang_pin_bian_hao ? '#E6A23C' : '',
+                        it.yang_pin_bian_hao ? '#67c23a' : '',
                     }"
                   >
                     <div class="top-dsc">
                       <div class="position">
-                        <p>{{it.wei_zhi_zhuang_ta }}</p>
-                        <p>存放位置:{{ it.wei_zhi_bian_hao_ }}</p>
+                        <p v-if="it.wei_zhi_zhuang_ta == '空余'">位置状态:{{it.wei_zhi_zhuang_ta }}</p>
+                        <p v-else>样品名称:{{ it.yang_pin_ming_che}}</p>           
                         <p>样品编号:{{ it.yang_pin_bian_hao }}</p>
-                        <p>
-                          存储条件:{{
-                            it.cun_chu_tiao_jian || it.cun_chu_yao_qiu_
-                          }}
-                        </p>
+                        <p>存放位置:{{ it.wei_zhi_bian_hao_ }}</p>
+                        <p>存储条件:{{ it.cun_chu_tiao_jian || it.cun_chu_yao_qiu_}}</p>
                         <p>留样期限:{{ it.liu_yang_qi_xian_ }}</p>
-                        <!-- <p>编号:{{it.yang_pin_bian_hao}}</p> -->
-                        <!-- <p>批次:</p>
-                        <p>有效期:</p> -->
                       </div>
-                      <div class="right-content" v-if="false">
+                      <!-- <div class="right-content" v-if="false">
                         <p v-if="false">编号:{{ it.liu_yang_qi_xian_ }}</p>
                         <p>
                           {{ it.wei_zhi_zhuang_ta || it.yang_pin_ming_che }}
                         </p>
-                        <p v-if="false">
-                          存储条件:{{
-                            it.cun_chu_tiao_jian || it.cun_chu_yao_qiu_
-                          }}
-                        </p>
-                        <p v-if="false">留样期限:{{ it.liu_yang_qi_xian_ }}</p>
-                        <!-- <p>类型:{{ it.cun_fang_lei_xing }}</p> -->
-                      </div>
-                      <div class="right-content">
+                        <p>{{ it.yang_pin_ming_che|| it.wei_zhi_zhuang_ta  }}</p>
+                      </div> -->
+                      <!-- <div class="right-content">
                         <p>
                           {{ it.yang_pin_ming_che|| it.wei_zhi_zhuang_ta  }}
                         </p>
-                      </div>
-                      <!-- <div class="condition">{{ it.cun_chu_tiao_jian }}</div> -->
-                    </div>
-                    <div class="bottom-dsc" v-if="false">
-                      {{ it.wei_zhi_zhuang_ta || it.yang_pin_ming_che }}
+                      </div> -->
                     </div>
                   </div>
                 </div>
@@ -240,8 +224,6 @@ export default {
       cenghao: [],
       warehouse: [],
       loading: false,
-      // pagination: {},
-      // secondshow: false,
       desString: "",
     };
   },
@@ -277,12 +259,10 @@ export default {
     loadQueryData() {
       //查询选择数据查询
       var sqlString = "select distinct fang_jian_lei_xin from t_mjypcfwz WHERE fang_jian_lei_xin !=''";
-      // var sqlString = "select * from t_mjypcfwz";
       var this_ = this;
       curdPost("sql", sqlString)
         .then((response) => {
           this_.sampleOption = response.variables.data;
-          // this_.sampleOption.pop();
         })
     },
     onSubmits(sql) {
@@ -304,7 +284,6 @@ export default {
           sql = `select * from t_mjypcfwz where fang_jian_lei_xin = '${fang_jian_}' and huo_jia_lei_xing_ = '${huo_jia_lei_xing_}'  and huo_jia_hao_ = '${huo_jia_hao_}' and gua_jia_hao_= '${gua_jia_hao}'`;
         }
       }
-      // this.desString = fang_jian_ + qu_yu + huo_jia_hao_;
       this.queryLoad(sql);
     },
     queryLoad(sql) {
@@ -316,15 +295,18 @@ export default {
       curdPost("sql", sql).then((res) => {
         datas = res.variables.data;
         datas.forEach((item) => {
-          if (!labelsMap[item.ceng_hao_]) {
-            //没有就创建
+          if (!labelsMap[item.ceng_hao_]) { //没有就创建           
             labelsMap[item.ceng_hao_] = [];
           }
           // 通过样品货位配置的id外键 查询样品登记表
-          let yangpingSql =
-            "select * from t_mjypdjb WHERE shou_yang_wei_zhi = '" +
-            item.id_ +
-            "'";
+          console.log(this_.formInline.fang_jian_hao_value)
+          let yangpingSql ="";
+          if(this_.formInline.fang_jian_hao_value == "样品间"){
+            yangpingSql ="select * from t_mjypdjb WHERE shou_yang_wei_zhi = '" +item.id_ +"'";
+          }else{
+            yangpingSql ="select * from t_mjypdjb WHERE liu_yang_wei_zhi_ = '" +item.id_ +"'";
+          }
+          
           curdPost("sql", yangpingSql).then((res) => {
             var resData = res.variables.data;
             if (resData.length > 0) {
@@ -337,8 +319,6 @@ export default {
             }
           });
         });
-        // this.loading = true;
-        
         this_.listData = labelsMap;
       });
     },
@@ -373,7 +353,6 @@ export default {
         //如果是冰箱 请求样品货位配置信息 ->查询登记表
         var sql = `select * from t_mjypcfwz where fang_jian_lei_xin = '${this.formInline.fang_jian_hao_value}' and qu_yu_ = '${this.formInline.qu_yu_value}' and  huo_jia_lei_xing_ = '${huojialeixing}' and huo_jia_hao_ = '${huojiaNum}'`;
         this.queryLoad(sql);
-        //  alert("冰箱");
       } else if (selectText.includes("液氮罐")) {
         //液氮罐 查询该液氮罐下所有的挂件
         let sqlString = `select distinct gua_jia_hao_ from t_mjypcfwz where huo_jia_lei_xing_ = '液氮罐' and huo_jia_hao_ = '${huojiaNum}'  order by gua_jia_hao_ asc`;
@@ -450,30 +429,6 @@ export default {
         }
       });
     },
-    // "formInline.qu_yu_value": function (newdata, olddata) {
-    //   let sqlString = `select distinct huo_jia_hao_,huo_jia_lei_xing_ from t_mjypcfwz where fang_jian_lei_xin = '${this.formInline.fang_jian_hao_value}' and qu_yu_ = '${newdata}'   order by huo_jia_hao_ asc`;
-    //   var this_ = this;
-    //   curdPost("sql", sqlString).then((response) => {
-    //     this_.huo_jia_arr = response.variables.data;
-    //     if (!this_.firstLoadActive) {
-    //       this_.formInline.huo_jia_value = "";
-    //     }
-    //     this_.firstLoadActive = false;
-    //   });
-    // },
-    // "formInline.huo_jia_value": function (newdata, olddata) {
-    //   console.log(newdata.substr(0, 1), "货架监听");
-    //   let sqlString = `select distinct gua_jia_hao_ from t_mjypcfwz where fang_jian_lei_xin = '留样间' and huo_jia_lei_xing_ = '液氮罐' and huo_jia_hao_ = '${newdata.substr(
-    //     0,
-    //     1
-    //   )}'   order by gua_jia_hao_`;
-    //   var this_ = this;
-    //   console.log(sqlString, "件数");
-    //   curdPost("sql", sqlString).then((response) => {
-    //     this_.gua_jia_arr = response.variables.data;
-    //     console.log(this_.gua_jia_arr, "挂件数");
-    //   });
-    // },
   },
 };
 </script>
@@ -529,18 +484,11 @@ p {
     }
   }
   .body-content {
-    // margin-top: 70px;
     display: flex;
     box-sizing: border-box;
     height: calc(100vh - 340px);
     overflow-x: hidden;
     overflow-y: scroll;
-    // .left-table {
-    //   // width: 40%;
-    //   ::v-deep .el-table {
-    //     width: 40%;
-    //   }
-    // }
     .right-view {
       z-index: 99;
       width: 100%;
@@ -552,7 +500,7 @@ p {
         .show-demo {
           width: 100%;
           border-bottom: 1px solid bisque;
-          //   margin: 0 auto;
+
           text-align: center;
 
           .goods-level {
@@ -568,7 +516,6 @@ p {
           }
           .goods-list {
             display: flex;
-            // justify-content: flex-start;
             flex-wrap: wrap-reverse;
             align-content: flex-start;
             margin-left: 50px;
@@ -584,23 +531,22 @@ p {
                 display: flex;
                 justify-content: space-between;
                 font-size: 12px;
-                // height: 18px;
                 line-height: 18px;
                 .position > p {
                   text-align: left;
                   color: #fbe8ff;
                 }
-                .right-content {
-                  display: flex;
-                  align-items: center;
-                  p {
-                    height: 18px;
-                    line-height: 18px;
-                    margin-left: 5px;
-                    color: #fbe8ff;
-                    text-align: left;
-                  }
-                }
+                // .right-content {
+                //   display: flex;
+                //   align-items: center;
+                //   p {
+                //     height: 18px;
+                //     line-height: 18px;
+                //     margin-left: 5px;
+                //     color: #fbe8ff;
+                //     text-align: left;
+                //   }
+                // }
               }
               .bottom-dsc {
                 width: 100%;
@@ -637,26 +583,6 @@ p {
             text-align: center;
           }
         }
-        // .shelf-pointer {
-        //   position: fixed;
-        //   right: 75px;
-        //   bottom: 35%;
-        //   cursor: pointer;
-        //   .pointer {
-        //     .pointer-item {
-        //       width: 45px;
-        //       height: 45px;
-        //       line-height: 45px;
-        //       border: 1px solid #fcfefd;
-        //       background-color: #fcb400;
-        //       border-radius: 50%;
-        //       text-align: center;
-        //       color: #fff0f3;
-        //       font-size: 18px;
-        //       margin-top: 10px;
-        //     }
-        //   }
-        // }
       }
     }
   }