<template>
  <view class="Scanning_Result">
    <view class="Scanning_top">
      <view class="Scanning_top_icon">
        <view class="text1"> 领取交接 </view>
      </view>
      <view class="Scanning_top_text">
        <strong class="red">{{dept && dept.dept}}</strong>领取,以下为前<strong class="red">{{differenceInDays}}</strong>天内<strong class="red">{{batchNum}}</strong>批次的被服
      </view>
    </view>

    <view class="Scanning_cont">
      <view class="Scanning_cont_head">
        <view class="Scanning_cont_head_item" :class="{active: parentIndex == i}" v-for="(item, i) in dataList" :key="item.id" @click="parentIndex = i">
          {{item.name}}
        </view>
      </view>

      <view class="Scanning_cont_list">
        <view class="Scanning_cont_list_item Scanning_cont_list_head">
          <view class="name">
            被服类型
          </view>
          <view class="value">
            <view>
              回收数量
            </view>
          </view>
          <view class="value">
            <view>
              送回数量
            </view>
          </view>
        </view>
        <scroll-view scroll-y="true" class="Scanning_cont_list_scroll" v-if="dataList[parentIndex]">
          <view class="Scanning_cont_list_item" @click="clickRow(item)" v-for="(item, j) in dataList[parentIndex].children" :key="item.id" :class="{red: item.clothesWashingDTO.exception == 1}">
            <view class="name">
              {{item.name}}
            </view>
            <view class="value">
              <view>
                {{item.clothesWashingDTO ? item.clothesWashingDTO.recyclingNum : ''}}
              </view>
            </view>
            <view class="value">
              <view>
                {{item.clothesWashingDTO ? item.clothesWashingDTO.sendBackNum : ''}}
              </view>
            </view>
          </view>
        </scroll-view>
      </view>
    </view>

    <view class="foot_btn">
      <view class="btn" @click="onClick()" v-if="dataList.length"> 确定 </view>
      <view class="btn" @click="goBack()"> 取消 </view>
    </view>
    <!-- 弹窗 -->
    <showModel :title="models1.title" :icon="models1.icon" :disjunctor="models1.disjunctor" :content="models1.content"
      @ok="ok1" @cancel="cancel1" :operate="models1.operate"></showModel>
  </view>
</template>
<script>
  import {
    get,
    post,
    SM,
    webHandle
  } from "../../../http/http.js";
  import dayjs from 'dayjs';
  export default {
    data() {
      return {
        batchIds: '',
        startTime: '',
        endTime: '',
        differenceInDays: '',
        batchNum: '',
        SMFlag: true,
        hosId: uni.getStorageSync('userData').user.currentHospital.id,
        queryObj: {}, //路由传递过来的数据
        dataList: [],
        parentIndex: 0,
        // 弹窗model
        models1: {
          disjunctor: false,
        },
        dept: null,
        handover: null,
      };
    },
    methods: {
      clickRow(data){
        uni.navigateTo({
          url: `../quiltWashingException/quiltWashingException?clothesTypeId=${data.id}&clothesTypeName=${data.name}&batchId=${data.clothesWashingDTO.batchId}&relatedDept=${data.clothesWashingDTO.relatedDept}`,
        });
      },
      //确定
      ok1() {
        this.models1.disjunctor = false;
        // let bussList = this.dataList.map(v => v.children).flat().map(v => v.clothesWashingDTO).map(v => ({...v, exception: 0}));
        uni.showLoading({
          title: "加载中",
          mask: true,
        });
        post("/transflow/checkComplete", {
          type: 'clothingSend',
          receiveAndHandover: true,
          deptId: this.dept ? this.dept.id : undefined,
          handoverId: this.handover ? this.handover.id : undefined,
          hosId: this.hosId,
          orderId: 0,
          // bussList,
          index: this.dataList[0].children[0].clothesWashingDTO.index,
          batchIds: this.batchIds,
        }).then((res) => {
          uni.hideLoading();
          if (res.data && res.data.state == 200) {
            uni.showModal({
              title: "提示",
              content: "操作成功",
              showCancel: false,
              success: (result) => {
                if (result.confirm) {
                  console.log("用户点击确定");
                  uni.navigateTo({
                    url: `../../receiptpage/receiptpage`,
                  });
                }
              },
            });
          }else{
            uni.showToast({
              icon: "none",
              title: res.data ? res.data.msg : "接口获取数据失败!",
            });
          }
        });
      },
      //取消
      cancel1() {
        this.models1.disjunctor = false;
      },
      // 被服送回弹窗
      showModel1() {
        let bussList = this.dataList.map(v => v.children).flat();
        let num = bussList.reduce((prev, current) => prev + current.clothesWashingDTO.sendBackNum, 0);
        let content = `您确认与<strong class="red">${this.handover ? this.handover.name : ''}</strong>交接,<strong class="red">${dayjs(this.startTime).format('YYYY年MM月DD日')}</strong>至<strong class="red">${dayjs(this.endTime,).format('YYYY年MM月DD日')}</strong>范围内<strong class="red">${this.batchNum}</strong>批次<strong class="red">${num}</strong>件被服?`;
        this.models1 = {
          disjunctor: true,
          title: "提示",
          content,
          icon: "warn",
          operate: {
            ok: "确定",
            cancel: "取消",
          },
        };
      },
      goBack(){
        uni.navigateBack();
      },
      onClick(){
        this.showModel1();
      },
      getInfo(){
        uni.showLoading({
          title: "加载中",
          mask: true,
        });
        post("/transflow/extra", {
          type: 'clothingSend',
          receiveAndHandover: true ,
          code: this.queryObj.quiltCode
        }).then((result) => {
          uni.hideLoading();
          if (result.data && result.data.state == 200) {
            this.dept = result.data.dept;
            this.batchNum = result.data.batchNum;
            this.startTime = result.data.startTime;
            this.endTime = result.data.endTime;
            this.batchIds = result.data.batchIds;
            this.differenceInDays = dayjs(result.data.endTime).diff(result.data.startTime, 'day');
            this.handover = result.data.handover;
            let dataList = result.data.treeList || [];
            dataList.forEach(v => {
              v.children = v.children.sort((a, b) => b.clothesWashingDTO.exception - a.clothesWashingDTO.exception)
            })
            console.log(dataList);
            this.dataList = dataList.slice(0, 3);
          } else {
            uni.showToast({
              icon: "none",
              title: result.data ? result.data.msg : "接口获取数据失败!",
            });
          }
        });
      },
    },
    onLoad(options) {
      console.log(options, "result");
      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 {
    height: 100vh;
    display: flex;
    flex-direction: column;
    background-color: #fafbfd;
    .Scanning_top {
      flex-shrink: 0;
      .Scanning_top_icon {
        padding-top: 26rpx;
        display: flex;
        justify-content: center;
        align-items: center;

        .cubeic-ok {
          font-size: 58rpx;
          color: #35b34a;
        }

        .text1 {
          font-size: 40rpx;
          font-weight: bold;
        }
      }
      .Scanning_top_text{
        text-align: center;
        font-size: 30rpx;
        font-weight: bold;
        padding: 8rpx 0 23rpx 0;
      }
    }

    .Scanning_cont {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      width: 710rpx;
      margin: 0 20rpx;
      background-color: #fff;

      .Scanning_cont_head{
        flex-shrink: 0;
        height: 78rpx;
        display: flex;
        border: 1rpx solid #EEEEEE;
        .Scanning_cont_head_item{
          flex: 1;
          font-size: 32rpx;
          font-weight: bold;
          display: flex;
          justify-content: center;
          align-items: center;
          position: relative;
          &.active{
            color: #49B856;
            &::before{
              content: '';
              width: 70rpx;
              height: 10rpx;
              background-color: #49B856;
              position: absolute;
              left: 50%;
              bottom: 0;
              transform: translateX(-50%);
              border-radius: 6rpx;
            }
          }
          &::after{
            content: '';
            width: 2rpx;
            height: 44rpx;
            background-color: #D1D1D1;
            position: absolute;
            right: 0;
            top: 50%;
            transform: translateY(-50%);
          }
          &:last-of-type::after{
            opacity: 0;
          }
        }
      }

      .Scanning_cont_list{
        flex: 1;
        min-height: 0;
        display: flex;
        flex-direction: column;
        .Scanning_cont_list_scroll{
          flex: 1;
          min-height: 0;
        }
        .Scanning_cont_list_item{
          height: 70rpx;
          display: flex;
          align-items: center;
          font-size: 28rpx;
          border: 1rpx solid #272727;
          border-top: none;
          &.Scanning_cont_list_head{
            font-weight: bold;
            font-size: 28rpx;
            border-top: 1rpx solid #272727;
            flex-shrink: 0;
          }
          .name,
          .value{
            padding: 0 40rpx;
            flex: 1;
            display: flex;
            align-items: center;
            height: 100%;
            border-right: 1rpx solid #272727;
          }
          .value {
            flex: 1;
            view{
              width: 4em;
              text-align: center;
            }
          }
        }
      }
    }

    .foot_btn {
      margin: 57rpx 30rpx 0;
      flex-shrink: 0;
      line-height: 88rpx;
      display: flex;
      justify-content: center;

      .btn {
        height: 88rpx;
        flex: 1;
        margin-right: 1%;
        background-image: linear-gradient(to right, #72c172, #3bb197);
        color: #fff;
        border-radius: 8rpx;
        font-size: 34rpx;
        font-weight: bold;
        text-align: center;
        &:last-of-type{
          margin-right: 0;
        }
      }
    }
  }
</style>