<template>
  <view class="Scanning_Result">
    <view class="Scanning_top">
      <view class="Scanning_top_icon">{{scanCount}}</view>
    </view>

    <view class="Scanning_cont">
      <scroll-view scroll-y class="scrollContent">
        <view class="column">
          <view class="name">单号:</view>
          <view class="value">{{drugsBag.batchNo}}</view>
        </view>
        <view class="column">
          <view class="name">申请科室:</view>
          <view class="value">{{drugsBag.target ? drugsBag.target.dept : ''}}</view>
        </view>
        <view class="column">
          <view class="name">发药科室:</view>
          <view class="value">{{drugsBag.launch ? drugsBag.launch.dept : ''}}</view>
        </view>
        <view class="column">
          <view class="name">种类数:</view>
          <view class="value">{{drugsBag.drugsTypeCount}}</view>
        </view>
        <view class="column">
          <view class="name">药品数:</view>
          <view class="value">{{drugsBag.drugsCount}}</view>
        </view>
      </scroll-view>
    </view>

    <view class="foot_btn_spe">
      <view class="column">
        <view class="btn" @click="Scanning_again()">继续扫描</view>
        <view class="btn" @click="hand_again()">手动录入</view>
      </view>
      <view class="column">
        <view class="btn" @click="checkHandover()">核对交接</view>
      </view>
    </view>
    <!-- 手动查询药品弹窗 -->
    <handViewDrugsBag v-if="drugbagModels.disjunctor" :title="drugbagModels.title"
      :disjunctor="drugbagModels.disjunctor" @ok="drugbagOk" @cancel="drugbagCancel">
    </handViewDrugsBag>
  </view>
</template>
<script>
  import {
    get,
    post,
    SM,
    webHandle
  } from "@/http/http.js";
  export default {
    data() {
      return {
        drugsBag: {}, //药包信息
        queryObj: {}, //路由传递过来的数据
        scanCount: '', //已扫描数量
        SMFlag: true,
        // 手动查询弹窗model
        drugbagModels: {
          disjunctor: false,
        },
      };
    },
    onShow() {
      this.SMFlag = true;
    },
    methods: {
      // 手动查询药品-确认
      drugbagOk(data) {
        console.log(data);
        if (!data.id) {
          //没有查询到药品
          uni.showModal({
            title: '提示',
            content: "没有查询到发药单号!",
            showCancel: false,
            success: function(res) {
              if (res.confirm) {
                console.log('用户点击确定');
              } else if (res.cancel) {
                console.log('用户点击取消');
              }
            }
          });
          return;
        }
        this.drugbagModels.disjunctor = false;
        this.hand_scanning_common(data.packid, 'hand');
      },
      // 手动查询药品-取消
      drugbagCancel() {
        this.drugbagModels.disjunctor = false;
      },
      // 手动查询药品弹窗
      showHandViewDrugsbag() {
        this.drugbagModels = {
          title: '填写发药单号',
          disjunctor: true,
        }
      },
      // 手动录入
      hand_again() {
        this.showHandViewDrugsbag();
      },
      // 核对交接
      checkHandover(){
        uni.navigateTo({
          url: `/pages/newDrug/checkPage/checkPage?drugsBagType=${this.queryObj.drugsBagType}&orderId=${this.queryObj.orderId}`,
        });
      },
      // 继续扫描
      Scanning_again(isFlag = false) {
        if (!this.SMFlag) {
          return;
        }
        this.SMFlag = false;
        SM().then((ress1) => {
          this.hand_scanning_common(ress1, 'scan', isFlag);
        }).catch(err => {
          this.SMFlag = true;
        });
      },
      // 手动输入和扫码公共方法
      hand_scanning_common(ress1, type, isFlag = false) {
        // ----------------
        uni.showLoading({
          title: "加载中",
          mask: true,
        });
        //检验二维码的有效性
        post("/dept/scanning", {
          content: ress1,
        }).then((result) => {
          this.SMFlag = true;
          if (result.state == 200 || result.state == 201) {
            let codes = result.code;
            if (codes) {
              this.input_common(ress1, type, isFlag);
            } else {
              uni.hideLoading();
            }
          } else {
            uni.hideLoading();
            uni.showToast({
              icon: "none",
              title: result.info || "接口获取数据失败!",
            });
          }
        });
        // ------------------------------
      },
      // 录入到工单
      input_common(ress1, type, isFlag = false){
        uni.showLoading({
          title: "加载中",
          mask: true,
        });
        post("/transflow/scanBind", { type: this.queryObj.drugsBagType, orderId: this.queryObj.orderId, code: ress1 }).then((ress) => {
          uni.hideLoading();
          if (ress.state == 200) {
            if(ress.data.msg){
              uni.showToast({
                icon: "none",
                title: ress.data.msg || "接口获取数据失败!",
              });
            }else{
              uni.redirectTo({
                url: `/pages/newDrug/continueScanning/continueScanning?drugsBagType=${this.queryObj.drugsBagType}&orderId=${this.queryObj.orderId}&scanOrHand=${type}&drugsBagId=${this.queryObj.drugsBagId}&orderStateValue=${this.queryObj.orderStateValue}`,
              });
            }
          } else {
            uni.showToast({
              icon: "none",
              title: ress.msg || "接口获取数据失败!",
            });
          }
        });
      },
      //获取页面信息
      getInfo(){
        uni.showLoading({
          title: "加载中",
          mask: true,
        });

        post(`/transflow/scanInfo`, {type: this.queryObj.drugsBagType, id: +this.queryObj.drugsBagId, orderStateValue: this.queryObj.orderStateValue, orderId: +this.queryObj.orderId}).then(res => {
          uni.hideLoading();
          if(res.state == 200){
            if(res.data){
              this.scanCount = res.data.scanCount;
              this.drugsBag = res.data.dto || {};
            }
          }else{
            uni.showToast({
              icon: "none",
              title: res.msg || "接口获取数据失败!",
            });
          }
        })
      },
    },
    onLoad(options) {
      console.log(options, "options");
      this.queryObj = options;
      this.getInfo();
      // #ifdef APP-PLUS
      webHandle("no", "app");
      // #endif
      // #ifdef H5
      webHandle("no", "wx");
      // #endif
    },
  };
</script>
<style lang="less" scoped>
  .Scanning_Result {
    background: #FAFBFD;
    padding: 0 24rpx;
    display: flex;
    flex-direction: column;
    height: 100vh;

    .Scanning_top {
      margin: 24rpx auto;
      .Scanning_top_icon {
        font-size: 140rpx;
        color: #FF0000;
        font-weight: bold;
      }
    }

    .Scanning_cont {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      .scrollContent{
        flex: 1;
        min-height: 0;
      }
      .column{
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 30rpx;
        margin-bottom: 32rpx;
        .name{
          font-weight: bold;
          word-break: break-all;
          flex-shrink: 0;
        }
        .value{
          word-break: break-all;
        }
      }
    }

    .foot_btn_spe {
      margin: 24rpx 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 24rpx;
      font-weight: bold;

      .column{
        width: 100%;
        height: 78rpx;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24rpx;

        .btn {
          height: 100%;
          flex: 1;
          background: linear-gradient( 90deg, #6FC073 0%, #3DB197 100%);
          color: #fff;
          border-radius: 4rpx;
          font-size: 30rpx;
          display: flex;
          justify-content: center;
          align-items: center;
        }
      }
    }
  }
</style>