<template>
  <view class="formManagementWechat">
    <view class="page_tab">
      <view class="page_tab_bar active">
        <view class="tab_dept">快捷接单</view>
      </view>
    </view>
    <view v-if="zxzData.length == 0" class="zwsj">
      <image class="zwsj-img" mode="widthFix" src="../../static/img/zanwushuju.png"></image>
      <view class="zwsj-txt">暂无数据</view>
    </view>
    <view v-if="zxzData.length" class="page_items">
      <scroll-view class="page_items_scroll" scroll-y>
        <checkbox-group @change="checkboxChange">
          <label class="goWorkSelect-item relative" v-for="item in zxzData" :key="item.id">
            <checkbox :value="item.id" :checked="item.checked" />
            <view>{{ item.name }}</view>
          </label>
        </checkbox-group>
      </scroll-view>
    </view>
    <!-- 底部 -->
    <view class="foot_btn2 footerPadding">
      <view class="btn2" @click="confirm">确认接单</view>
      <view class="btn2" @click="goBack">返回</view>
    </view>
  </view>
</template>
<script>
  import {
    get,
    post,
    webHandle
  } from "../../http/http.js";
  export default {
    data() {
      return {
        hosId: uni.getStorageSync("userData").user.currentHospital.id,
        options: {},
        //列表数据
        zxzData: [],
      };
    },
    methods: {
      // 确认接单
      confirm(){
        let ids = this.zxzData.filter(v => v.checked).map(v => v.id).toString();
        if(!ids){
          uni.showToast({
            icon: "none",
            title: "请至少选择一项！",
          });
          return;
        }
        uni.showLoading({
          title: "加载中",
          mask: true,
        });
        post("/workerOrder/getReceiveOrderIds", {ids}).then((res) => {
          uni.hideLoading();
          if (res.status == 200) {
            uni.showModal({
              title: "提示",
              content: `您本次接单包括${res.names.join('、')}，一共含有${res.data.length}个工单，是否确认接单？`,
              success: function(result) {
                if (result.confirm) {
                  uni.showLoading({
                    title: "加载中",
                    mask: true,
                  });
                  post("/workerOrder/receiveOrders", {ids: res.data.toString()}).then((res) => {
                    uni.hideLoading();
                    if (res.status == 200) {
                      uni.showModal({
                        title: "提示",
                        content: `本次接单包括${res.names.join('、')}，${res.data.length}个工单已接单完成`,
                        showCancel: false,
                        success: function(res) {
                          if (res.confirm) {
                            console.log("用户点击确定");
                            uni.navigateTo({
                              url: "../receiptpage/receiptpage",
                            });
                          } else if (res.cancel) {
                            console.log("用户点击取消");
                          }
                        },
                      });
                    } else {
                      uni.showToast({
                        icon: "none",
                        title: "请求失败！",
                      });
                    }
                  });
                } else if (result.cancel) {
                  console.log("用户点击取消");
                }
              },
            });
          } else {
            uni.showToast({
              icon: "none",
              title: "请求失败！",
            });
          }
        });
      },
      // 选择多选框
      checkboxChange: function(e) {
        let items = this.zxzData,
          values = e.detail.value;
        for (let i = 0, lenI = items.length; i < lenI; ++i) {
          const item = items[i]
          if (values.includes(item.id)) {
            this.$set(item, 'checked', true)
          } else {
            this.$set(item, 'checked', false)
          }
        }
      },
      // 返回
      goBack() {
        uni.navigateBack();
      },
      //获取快捷接单类型
      getReceiveRuleType() {
        let postData = {
            "type": "list",
            "key": "receiveRuleType"
        };
        uni.showLoading({
          title: "加载中",
          mask: true,
        });
        // 请求列表数据
        post("/common/common/getDictionary", postData).then((res) => {
            let type = res.find(v => v.value == 1);
            this.getList(type);
        });
      },
      //表单列表获取
      getList(type) {
        let postData = {
          "idx": 0,
          "sum": 9999,
          "receiveOrderRule": {
            "hosId": this.hosId,
            type,
          }
        };
        uni.showLoading({
          title: "加载中",
          mask: true,
        });
        // 请求列表数据
        post("/simple/data/fetchDataList/receiveOrderRule", postData).then((res) => {
          uni.hideLoading();
          if (res.status == 200) {
            res.list = res.list || [];
            this.zxzData = res.list.map(v => ({
              id: v.id,
              name: v.title,
              checked: false,
            }))
          } else {
            this.zxzData = [];
            uni.showToast({
              icon: "none",
              title: "请求失败！",
            });
          }
        });
      },
      // 阻止浏览器滑动
      stop(e) {
        e.preventDefault();
      },
    },
    onLoad(options) {
      console.log(options);
      this.options = options;
      this.getReceiveRuleType();
      // #ifdef APP-PLUS
      webHandle("no", "app");
      // #endif
      // #ifdef H5
      webHandle("no", "wx");
      // #endif
    },
    onShow() {
      // #ifdef H5
      document.body.addEventListener("touchmove", this.stop, {
        passive: false,
      });
      // #endif
    },
    onHide() {
      // #ifdef H5
      document.body.removeEventListener("touchmove", this.stop, {
        passive: false,
      });
      // #endif
    },
  };
</script>
<style lang="less" scoped>
  .formManagementWechat {
    width: 100%;
    height: 100%;
    position: relative;

    .foot_btn2 {
      position: fixed;
      bottom: 0;
      right: 20rpx;
      left: 20rpx;
      line-height: 66rpx;
      height: 100rpx;
      border-top: 2rpx solid #e5e9ed;
      background: #f9fafb;
      display: flex;
      justify-content: space-between;

      .btn2 {
        height: 66rpx;
        width: 100%;
        margin: 0 1%;
        background-image: linear-gradient(to right, #72c172, #3bb197);
        color: #fff;
        border-radius: 8rpx;
        font-size: 32rpx;
        margin-top: 16rpx;
        text-align: center;
      }

      .btn3 {
        height: 66rpx;
        width: 48%;
        margin: 0 1%;
        background-image: linear-gradient(to right, #72c172, #3bb197);
        color: #fff;
        border-radius: 8rpx;
        font-size: 32rpx;
        margin-top: 16rpx;
        text-align: center;
      }
    }

    .icon_transport {
      color: #49b856;
      font-size: 50rpx;

      &.colorRed {
        color: red;
        font-size: 40rpx;
      }
    }

    .page_tab {
      width: 100%;
      height: 96rpx;
      display: flex;
      position: fixed;
      left: 0;
      top: 0;
      z-index: 999;

      .page_tab_bar {
        flex: 1;
        font-size: 36rpx;
        background: #fff;
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;

        &:after {
          content: "";
          position: absolute;
          left: 0;
          bottom: 0;
          height: 2rpx;
          width: 100%;
          background-color: transparent;
        }

        .tab_dept {
          position: relative;

          .changeDept {
            white-space: nowrap;
            margin: 0;
            position: absolute;
            right: 0;
            top: 50%;
            transform: translate(105%, -50%);
            padding: 0 0.5em;
            line-height: 2;
          }
        }

        &.active {
          color: #49b856;

          &:after {
            background-color: #49b856;
          }
        }
      }
    }

    .zwsj {
      position: absolute;
      left: 50%;
      top: 180rpx;
      transform: translateX(-50%);

      .zwsj-img {
        width: 560rpx;
      }

      .zwsj-txt {
        font-size: 36rpx;
        font-weight: 700;
        margin-top: 20rpx;
        text-align: center;
      }
    }

    .page_items {
      height: calc(100vh - 284rpx);
      padding: 0 20rpx;
      padding-top: 96rpx;

      .page_items_scroll {
        height: 100%;
        .goWorkSelect-item {
          height: 52rpx;
          display: flex;
          align-items: center;
          border-bottom: 2rpx solid #e5e9ed;
          padding: 16rpx;

          &.relative {
            position: relative;

            .picker {
              position: absolute;
              width: 100%;
              padding-left: 64rpx;
            }
          }

          button {
            font-size: 32rpx;
            height: 52rpx;
            line-height: 52rpx;
            margin: 0;
            margin-left: 16rpx;
            color: rgb(7, 134, 60);
            font-weight: 700;
          }
        }
      }
    }
  }
</style>
