<template>
  <view class="index-container">
    <status-bar :backgroundColor="'#fff'" v-if="true"></status-bar>
    <view class="shop-info">
      <view
        class="shop-logo-img"
        :style="{ backgroundImage: `url(${logoUrl})` }"
      ></view>
      <u-search
        class="search"
        placeholder="请输入订单号搜索"
        :showAction="false"
        bgColor="#fff"
        v-model="keyword"
        @input="searchOrder()"
      ></u-search>
      <u-icon
        @click="openPhoneDial"
        class="icon-shezhi"
        custom-prefix="custom-icon-kefu custom-icon"
        size="24"
        color="#000"
      ></u-icon>
    </view>
    <view class="tab-content">
      <tui-tabs
        :tabs="tabs"
        :currentTab="currentTab"
        backgroundColor="#f9f9f9"
        :height="88"
        color="#333"
        :size="36"
        selectedColor="#FE411B"
        sliderBgColor="#FE411B"
        :sliderHeight="4"
        :width="width"
        unlined
        @change="handleTab"
      ></tui-tabs>
    </view>
    <view class="tab2-content" v-if="currentTab == 0">
      <tui-tabs
        :class="['tabs-2', `tab_item_${currentTab2}`]"
        :tabs="tabs2"
        :width="320"
        :currentTab="currentTab2"
        @change="handleTab2"
        backgroundColor="#f9f9f9"
        :height="60"
        :size="28"
        unlined
        :sliderWidth="166"
        :sliderHeight="64"
        sliderRadius="4rpx"
        bottom="50%"
        color="#888"
        selectedColor="#f9f9f9"
        sliderBgColor="#FE411B"
      ></tui-tabs>
      <view
        class="screen-content"
        v-show="currentTab2 == 2"
        @click="showScreenPopup = true"
      >
        <u-icon
          class="icon-shezhi"
          custom-prefix="custom-icon-a-Frame3 custom-icon"
          size="16"
          color="#fe411b"
        ></u-icon>
        筛选
      </view>
    </view>
    <!-- <view class="search-contetn" v-if="currentTab2 != 2">
      <view class="btn-content" @click="handleShowDropDown">
        <tui-dropdown-list :show="showDropdown" :top="94" :height="400">
          <template v-slot:selectionbox>
            <view class="btn-down">
              功能模块
              <u-icon
                :class="[
                  'tui-animation',
                  showDropdown ? 'tui-animation-show' : '',
                ]"
                style="display: inline-block; margin-left: 6rpx"
                :name="'arrow-down'"
                color="#cccccc"
                size="12"
              ></u-icon>
            </view>
          </template>
          <template v-slot:dropdownbox>
            <view class="btn-down-list">
              <view class="btn-unfold">全部展开</view>
              <view class="btn-unfold">全部收回</view>
            </view>
          </template>
        </tui-dropdown-list>
      </view>
    </view> -->

    <view class="order-info-content" v-if="currentTab2 == 0">
      <favorite-loading
        class="order-loading"
        v-show="showOrderLoading"
        :color="'#FE411B'"
        text=""
        animation="spinner15"
      ></favorite-loading>

      <scroll-view
        class="uni-swiper-list"
        scroll-y
        :scroll-top="0"
        enhanced
        :show-scrollbar="false"
        @scrolltolower="scrolltolower"
        refresher-enabled
        :refresher-triggered="isRefreshing"
        @refresherrefresh="handleRefresh"
      >
        <OrderItem
          v-if="
            orderInfo.order_page_list.records.length > 0 && !showOrderLoading
          "
          v-for="(item, index) of orderInfo.order_page_list.records"
          :orderItem="item"
          :orderItemIndex="index"
          :isErrorOrder="false"
          @cancelOrder="handerCancelOrder"
          @showRefundOrderInfo="handerShowRefundOrderInfo"
        ></OrderItem>
        <view
          class="no-data"
          v-if="
            orderInfo.order_page_list.records.length <= 0 &&
            isNoOnlineOrder &&
            !showOrderLoading
          "
        >
          <view class="no-data-bg"></view>
          <view class="no-data-tips">暂无交易记录!</view>
        </view>
        <view
          class="m-loading-box"
          v-if="!showOrderLoading && !isNoOnlineOrder"
        >
          <block v-if="loadingDownOnlinData">
            <view class="u-loadmore">
              <view class="u-loading"></view>
              <text class="u-loadmore-tips">正在加载...</text>
            </view>
          </block>
          <block v-else>
            <view class="u-loadmore u-loadmore-line">
              <text class="u-loadmore-tips">没有更多数据啦！</text>
            </view>
          </block>
        </view>
      </scroll-view>
    </view>
    <view class="order-info-content" v-if="currentTab2 == 1">
      <favorite-loading
        class="order-loading"
        v-show="showOrderLoading"
        :color="'#FE411B'"
        text=""
        animation="spinner15"
      ></favorite-loading>
      <scroll-view
        class="uni-swiper-list"
        scroll-y
        :scroll-top="0"
        enhanced
        :show-scrollbar="false"
        @scrolltolower="scrolltolower"
        refresher-enabled
        :refresher-triggered="isRefreshing"
        @refresherrefresh="handleRefresh"
      >
        <OrderItem
          v-show="
            orderInfo.order_page_list.records.length > 0 && !showOrderLoading
          "
          v-for="(item, index) of orderInfo.order_page_list.records"
          :orderItem="item"
          :orderItemIndex="index"
          :isErrorOrder="true"
          @cancelOrder="handerCancelOrder"
          @showRefundOrderInfo="handerShowRefundOrderInfo"
          @refreshOrderList="handleRefresh"
        ></OrderItem>
        <view
          class="no-data"
          v-if="
            orderInfo.order_page_list.records.length <= 0 &&
            isNoOnlineOrder &&
            !showOrderLoading
          "
        >
          <view class="no-data-bg"></view>
          <view class="no-data-tips">暂无交易记录!</view>
        </view>
        <view
          class="m-loading-box"
          v-if="!showOrderLoading && !isNoOnlineOrder"
        >
          <block v-if="loadingDownOnlinData">
            <view class="u-loadmore">
              <view class="u-loading"></view>
              <text class="u-loadmore-tips">正在加载...</text>
            </view>
          </block>
          <block v-else>
            <view class="u-loadmore u-loadmore-line">
              <text class="u-loadmore-tips">没有更多数据啦！</text>
            </view>
          </block>
        </view>
      </scroll-view>
    </view>
    <view class="order-info-content" v-if="currentTab2 == 2">
      <favorite-loading
        class="order-loading"
        v-show="showOrderLoading"
        :color="'#FE411B'"
        text=""
        animation="spinner15"
      ></favorite-loading>
      <scroll-view
        class="uni-swiper-return-list"
        scroll-y
        :scroll-top="0"
        enhanced
        :show-scrollbar="false"
        @scrolltolower="scrollSalesReturnTolower"
        refresher-enabled
        :refresher-triggered="isRefreshing"
        @refresherrefresh="handleRefresh"
      >
        <retrunOrderItem
          v-for="(item, index) of salesReturnOrderList"
          :orderItem="item"
          :orderItemIndex="index"
          :dashboardInfo="dashboardInfo"
          :salesReturnBtnSearchAcitve="salesReturnBtnSearchAcitve"
          @handerRefreshSalesReturnOrderList="handerRefreshSalesReturnOrderList"
        ></retrunOrderItem>
        <view
          class="no-data"
          v-if="salesReturnOrderList.length <= 0 && isNoSalesReturnOrderData"
        >
          <view class="no-data-bg"></view>
          <view class="no-data-tips">暂无交易记录!</view>
        </view>
        <view
          class="m-loading-box"
          v-if="salesReturnOrderList.length > 0 && !isNoSalesReturnOrderData"
        >
          <block v-if="loadingDownSalesReturnData">
            <view class="u-loadmore">
              <view class="u-loading"></view>
              <text class="u-loadmore-tips">正在加载...</text>
            </view>
          </block>
          <block v-else>
            <view class="u-loadmore u-loadmore-line">
              <text class="u-loadmore-tips">没有更多数据啦！</text>
            </view>
          </block>
        </view>
      </scroll-view>
    </view>

    <u-popup
      class="screen-popup"
      zIndex="10080"
      :show="showScreenPopup"
      mode="bottom"
      closeable
      @close="showScreenPopup = false"
    >
      <view class="screen-popup-content">
        <view class="screen-popup-title">筛选</view>
        <view class="sales-retrun-btn-list">
          <u-button
            :class="[
              'sales-retrun-btn-item',
              { active: salesReturnBtnSearchAcitve == item.value },
            ]"
            size=""
            @click="handelSalesReturnSearch(item)"
            :style="{ width: item.width }"
            v-for="(item, index) of salesReturnBtnSearchList"
            :key="index"
          >
            {{ item.label }}
          </u-button>
        </view>
        <view class="popup-btn-list">
          <u-button
            class="btn-item"
            :hairline="true"
            :plain="true"
            shape="circle"
            @click="showScreenPopup = false"
          >
            取消
          </u-button>
          <u-button
            class="btn-item btn-item-2"
            :hairline="true"
            :plain="true"
            shape="circle"
            @click="handerRetrunOrderScreen"
          >
            确认
          </u-button>
        </view>
      </view>
    </u-popup>
    <u-toast ref="uToast"></u-toast>
    <tabbar tabbarName="order"></tabbar>
  </view>
</template>

<script>
import statusBar from "../../components/status-bar.vue";
import tuiTabs from "../../components/tui-tabs.vue";
import {
  GetOrderList,
  GetSalesReturnOrderList,
  GetSalesReturnOrderDetails,
  GetSalesReturnOrderNoPass,
  GetSalesReturnOrderPass,
  GetInitiativeOrderRefund,
  GetOrderPicking,
} from "../../api/order";
import { mapState } from "vuex";
import { GetAuditInfo } from "../../api/audit";
import { GetAccountDashboard } from "../../api/user";
import favoriteLoading from "@/components/favorite-loading/favorite-loading.vue";
import tuiDropdownList from "@/components/tui-dropdown-list/tui-dropdown-list.vue";
import tabbar from "@/components/tabbar/tabbar.vue";
import tuiGallery from "@/components/tui-gallery/tui-gallery.vue";
import tuiRadio from "@/components/tui-radio/tui-radio.vue";
import tuiRadioGroup from "@/components/tui-radio-group/tui-radio-group.vue";
import tuiSelect from "@/components/tui-select/tui-select.vue";

import OrderItem from "./components/OrderItem.vue";
import retrunOrderItem from "./components/retrunOrderItem.vue";
export default {
  components: {
    tuiTabs,
    statusBar,
    favoriteLoading,
    tuiDropdownList,
    tabbar,
    tuiGallery,
    tuiRadio,
    tuiRadioGroup,
    tuiSelect,
    OrderItem,
    retrunOrderItem,
  },
  data() {
    return {
      showDropdown: false,
      currentTab: 0,
      currentTab2: 0,
      keyword: "",
      pageNum: 1,
      pageSize: 10,
      width: uni.upx2px(204),
      tabs: [
        {
          name: "同城订单",
          num: 1,
        },
        // {
        //   name: "预订单",
        // },
        // {
        //   name: "物流订单",
        // },
        // {
        //   name: "全部订单",
        //   num: 0,
        // },
      ],
      tabs2: [
        {
          name: "进行中",
          num: 0,
        },
        {
          name: "异常配送",
          num: 0,
        },
        {
          name: "退款",
          num: 0,
        },
      ],
      commodityArr: [
        {
          imrUrl: "../../static/logo.jpg",
          name: "猪肉",
          barcode: "11131312123",
          specification: "500g*1袋",
          num: "3",
          price: 300,
        },
        {
          imrUrl: "../../static/logo.jpg",
          name: "猪肉",
          barcode: "11131312123",
          specification: "500g*1袋",
          num: "3",
          price: 300,
        },
        {
          imrUrl: "../../static/logo.jpg",
          name: "猪肉",
          barcode: "11131312123",
          specification: "500g*1袋",
          num: "3",
          price: 300,
        },
      ],
      orderInfo: {
        order_count: {
          same_city_order: {
            progress_count: "",
            overtime_count: "",
            refund_count: "",
          },
        },
        order_page_list: {
          records: [],
        },
      },
      shopNmae: "",
      logoUrl: "@/static/logo.jpg",
      sfStatus: [
        {
          id: 1,
          label: "订单创建",
        },
        {
          id: 2,
          label: "订单取消",
        },
        {
          id: 10,
          label: "配送员接单",
        },
        {
          id: 12,
          label: "配送员到店",
        },
        {
          id: 15,
          label: "配送中（已取货）",
        },
        {
          id: 17,
          label: "配送员妥投完单",
        },
        {
          id: 22,
          label: "配送员撤单",
        },
        {
          id: 91,
          label: "骑士上报异常",
        },
        {
          id: 31,
          label: "取消中",
        },
      ],
      deliveryType: [
        {
          key: 16,
          value: "同城",
        },
        {
          key: 10,
          value: "普通快递",
        },
        {
          key: 5,
          value: "自提",
        },
      ],
      time: 0,
      params: {
        storeId: "",
        keyword: "",
        pageNum: "",
        pageSize: "",
        return_state_id: null,
      },
      dashboardInfo: {
        store_info: {
          store_id: "",
        },
      },
      salesReturnBtnSearchList: [
        {
          value: null,
          label: "全部",
          width: "120rpx",
        },
        {
          value: 3125,
          label: "完成",
          width: "120rpx",
        },
        {
          value: 3130,
          label: "拒绝",
          width: "120rpx",
        },
        {
          value: 3110,
          label: "收货确认",
          width: "170rpx",
        },
        {
          value: 3105,
          label: "待审核",
          width: "140rpx",
        },
        {
          value: 3115,
          label: "退款确认",
          width: "170rpx",
        },
        {
          value: 3120,
          label: "收款确认",
          width: "170rpx",
        },
      ],
      salesReturnBtnSearchAcitve: null,
      salesReturnOrderList: [],
      showImgList: [],
      showImg: false,
      showOrderLoading: false, //
      isNoOnlineOrder: false, // 没有订单的显示
      loadingDownOnlinData: false, // 在线订单下拉加载
      isDownNoOrderData: false, // 下拉加载时没有数据的表现
      isNoSalesReturnOrderData: false, // 没有退货订单
      loadingDownSalesReturnData: false, // 下拉加载退货订单
      isDownNoSalesReturnData: false, // 下拉加载时没有退货数据
      showReturnOrderPopup: false,
      returnOrderType: "",
      radioOrderType: "",
      radioItems: [
        {
          name: "需要退货",
          value: "1",
          checked: true,
        },
        {
          name: "不用退货",
          value: "0",
          checked: false,
        },
      ],
      retrunOrderMsg: "",
      currReturnId: "",
      currOrderItem: {
        order_items: [],
      },
      isCancelOrder: false,
      showCancelOrderPopup: false,
      showPartOrderRefundPopup: false,
      form: {
        reason: "",
      },
      rules: {
        reason: [
          {
            required: true,
            message: "请输入取消订单原因",
            // 可以单个或者同时写两个触发验证方式
            trigger: ["change", "blur"],
          },
        ],
      },
      commodityCheckBoxList: [],
      refreshInterval: null, // 全局定时器
      showOrderPickingPopup: false,
      isRefreshing: false,
      showScreenPopup: false,
    };
  },
  computed: {
    ...mapState("user", ["userInfo"]),
    ...mapState("push", ["orderDetail", "orderStatus"]),
  },
  watch: {
    orderDetail: {
      handler(newValue) {
        if (newValue && newValue.order_id) {
          console.log("orderDetail", newValue);

          // 找到数组中匹配的订单索引
          const index = this.orderInfo.order_page_list.records.findIndex(
            (item) => item.order_id === newValue.order_id
          );

          // 如果找到匹配的订单
          if (index !== -1) {
            // 保留原有的orderNum
            const originalOrderNum =
              this.orderInfo.order_page_list.records[index].orderNum;

            this.$set(this.orderInfo.order_page_list.records, index, {
              ...this.orderInfo.order_page_list.records[index],
              ...newValue,
              orderNum: originalOrderNum,
            });
          }
        }
      },
      deep: true,
    },
    orderStatus: {
      handler(newValue) {
        if (newValue) {
          this.pageNum = 1;
          if (newValue == "mchRetrunOrderList") {
            if (this.currentTab2 == 2) {
              this.getSalesReturnOrderList(null);
              console.log("触发getSalesReturnOrderList");
            }
          } else {
            if (this.currentTab2 != 2) {
              this.getOrderList(false);
              console.log("触发getOrderList");
            }
          }
        }
      },
    },
  },
  onLoad() {},
  onShow() {
    const currentTab2 = uni.getStorageSync("currentTab2");
    console.log(currentTab2);
    if (currentTab2) {
      this.handleTab2(currentTab2);

      uni.removeStorageSync("currentTab2");
    } else {
      this.getOrderList();
    }
	if (this.currentTab2 === 2) {
	    this.getSalesReturnOrderList(null);
	  }
  },
  onPullDownRefresh() {
    this.pageNum = 1;
    this.keyword = "";
    this.getOrderList();
  },
  methods: {
    // 在线订单
    async getOrderList(isLoding = true) {
      let accountDashboard = uni.getStorageSync("accountDashboard");
      let auditInfo = uni.getStorageSync("auditInfo");

      if (accountDashboard) {
        this.shopNmae = accountDashboard.store_info.store_name;
        this.logoUrl = accountDashboard.store_info.store_logo;
        this.dashboardInfo = accountDashboard;
      } else {
        await this.getAccountDashboard();
      }
      if (!auditInfo) {
        await this.getAuditInfo();
      }

      if (this.loadingDownOnlinData) {
        this.showOrderLoading = false;
      } else {
        if (isLoding) {
          this.showOrderLoading = true;
        }
      }

      this.params = {
        storeId: this.dashboardInfo.store_info.store_id,
        keyword: this.keyword,
        pageNum: this.pageNum,
        pageSize: this.pageSize,
        delivery: this.currentTab + 1,
        status: this.currentTab2 + 1,
      };

      let res = await GetOrderList(this.params);

      if (res && res.status == 200) {
        // 下拉加载时
        if (this.loadingDownOnlinData) {
          if (res.data.order_page_list.records.length <= 0) {
            this.loadingDownOnlinData = false;
            this.isDownNoOrderData = true;
            return;
          } else {
            // this.orderInfo = { ...this.orderInfo, ...res.data };
            this.orderInfo.order_page_list.records = [
              ...this.orderInfo.order_page_list.records,
              ...res.data.order_page_list.records,
            ];
          }
        } else {
          this.orderInfo = res.data;
        }

        if (this.orderInfo.order_count) {
          this.tabs[0].num =
            this.orderInfo.order_count.same_city_order.progress_count +
            this.orderInfo.order_count.same_city_order.overtime_count +
            this.orderInfo.order_count.same_city_order.refund_count; // 同城订单总数
          // this.tabs[2].num = this.orderInfo.order_count.logistics_order_count; // 物流订单总数
          // this.tabs[3].num = this.orderInfo.order_count.all_order_count;  //所有订单总数

          this.tabs2[0].num =
            this.orderInfo.order_count.same_city_order.progress_count; // 同城进行中订单数量
          this.tabs2[1].num =
            this.orderInfo.order_count.same_city_order.overtime_count; // 同城超时异常订单数量
          this.tabs2[2].num =
            this.orderInfo.order_count.same_city_order.refund_count; // 同城退款订单数量
        }

        if (res.data.order_page_list.records.length <= 0) {
          this.showOrderLoading = false;
          this.isNoOnlineOrder = true;
          this.isRefreshing = false;
          return;
        }

        this.orderInfo.order_page_list.records =
          this.orderInfo.order_page_list.records.map((item, index) => {
            if (item) {
              item.orderNum = index + 1;
              item.showRefundOrderInfo = false;
              item.sf_order_info = {
                sf_order_id: "",
                operator_name: "",
                operator_phone: "",
                rider_lng: "",
                rider_lat: "",
                order_status: "",
                status_desc: "",
                cancel_code: "",
                cancel_reason: "",
                push_time: "",
                h5_url: "",
                feed: [],
                ...item.sf_order_info,
              };
            }
            return item;
          });
      }

      this.showOrderLoading = false;
      this.loadingDownOnlinData = false;
      this.isRefreshing = false;
      // uni.stopPullDownRefresh();
    },
    handleRefresh() {
      this.isRefreshing = true;

      this.pageNum = 1;
      this.isNoOnlineOrder = false;
      this.loadingDownOnlinData = false;
      this.isDownNoOrderData = false;

      this.isNoSalesReturnOrderData = false;
      this.loadingDownSalesReturnData = false;
      this.isDownNoSalesReturnData = false;
      if (this.currentTab2 == 2) {
        this.getSalesReturnOrderList();
      } else {
        this.getOrderList();
      }
    },
    getRemainingTime(arrivalTime) {
      if (!arrivalTime) return "时间未设定";

      const now = Date.now();
      const remainingMs = arrivalTime - now;

      if (remainingMs <= 0) return "已超时";

      // 计算分钟和秒
      const minutes = Math.floor(remainingMs / (1000 * 60));
      const seconds = Math.floor((remainingMs % (1000 * 60)) / 1000);

      // 格式化为 MM:SS（补零）
      return `${minutes}:${seconds.toString().padStart(2, "0")}`;
    },
    handelSalesReturnSearch(item) {
      if (item.value == this.salesReturnBtnSearchAcitve) return;

      this.salesReturnBtnSearchAcitve = item.value;
    },
    async getSalesReturnOrderList(returnStateId = 3105) {
      if (this.loadingDownSalesReturnData) {
        this.showOrderLoading = false;
      } else {
        this.showOrderLoading = true;
      }

      console.log(this.keyword);

      let params = {
        pageNum: this.pageNum,
        pageSize: this.pageSize,
        order_id: this.keyword,
        return_state_id: returnStateId,
      };

      let res = await GetSalesReturnOrderList(params);
      if (res && res.status == 200) {
        // 下拉加载
        if (this.loadingDownSalesReturnData) {
          if (res.data.items.length <= 0) {
            this.loadingDownSalesReturnData = false;
            this.isDownNoSalesReturnData = true;
            return;
          } else {
            // this.orderInfo = { ...this.orderInfo, ...res.data };
            this.salesReturnOrderList = [
              ...this.salesReturnOrderList,
              ...res.data.items,
            ];
          }
        } else {
          this.salesReturnOrderList = res.data.items;
        }

        if (res.data.items <= 0) {
          this.showOrderLoading = false;
          this.isNoSalesReturnOrderData = true;
          this.isRefreshing = false;
          return;
        }

        this.salesReturnOrderList = this.salesReturnOrderList.map(
          (item, index) => {
            if (item) {
              item.orderNum = index + 1;
              item.showRefundOrderInfo = false;
            }
            return item;
          }
        );
        console.log(this.salesReturnOrderList);
      }
      this.showOrderLoading = false;
      this.loadingDownSalesReturnData = false;
      this.isRefreshing = false;
    },
    async getSalesReturnOrderDetails(item, index) {
      let params = {
        return_id: item.return_id,
      };

      let res = await GetSalesReturnOrderDetails(params);
      if (res && res.status == 200) {
        let detailsInfo = res.data;

        this.$set(this.salesReturnOrderList, index, {
          ...this.salesReturnOrderList[index],
          detailsInfo: detailsInfo,
        });

        console.log(this.salesReturnOrderList);
      }
    },

    handerShowRefundOrderInfo(showRefundOrderInfo, index) {
      if (this.currentTab2 == 2) {
        this.$set(this.salesReturnOrderList, index, {
          ...this.salesReturnOrderList[index],
          showRefundOrderInfo: showRefundOrderInfo,
        });
      } else {
        this.$set(this.orderInfo.order_page_list.records, index, {
          ...this.orderInfo.order_page_list.records[index],
          showRefundOrderInfo: showRefundOrderInfo,
        });
      }
    },
    async getAuditInfo() {
      var params = {};

      params.mobile = this.userInfo.user_mobile.startsWith("+86")
        ? this.userInfo.user_mobile.replace("+86", "")
        : this.userInfo.user_mobile;

      let res = await GetAuditInfo(params);
      if (res && res.status == 200) {
        uni.setStorageSync("auditInfo", res.data);

        if (res.data.contract_download_url) {
          uni.setStorageSync(
            "contractDownloadUrl",
            res.data.contract_download_url
          );
        }
      }
    },
    async getAccountDashboard() {
      let res = await GetAccountDashboard();

      if (res && res.status == 200) {
        uni.setStorageSync("accountDashboard", res.data);
        this.dashboardInfo = res.data;
        this.shopNmae = res.data.store_info.store_name;
        this.logoUrl = res.data.store_info.store_logo;
      }
    },
    handerCloseReturnOrderPopup() {
      this.showReturnOrderPopup = false;
    },

    formatTime(time) {
      let date = new Date(time);
      let hours = String(date.getHours()).padStart(2, "0");
      let minutes = String(date.getMinutes()).padStart(2, "0");
      return hours + ":" + minutes;
    },
    handleTab(e) {
      this.currentTab = e.index;
      this.pageNum = 1;
      this.keyword = "";
      this.isNoOnlineOrder = false;
      this.getOrderList();
    },
    handleTab2(e) {
      if (e.index || e.index == 0) {
        this.currentTab2 = e.index;
      } else {
        this.currentTab2 = e;
      }

      console.log("触发了handleTab2", e);

      this.pageNum = 1;
      this.keyword = "";
      this.isNoOnlineOrder = false;
      this.loadingDownOnlinData = false;
      this.isDownNoOrderData = false;

      this.isNoSalesReturnOrderData = false;
      this.loadingDownSalesReturnData = false;
      this.isDownNoSalesReturnData = false;

      if (this.currentTab2 == 2) {
        this.getSalesReturnOrderList(null);
      } else {
        this.getOrderList();
      }
    },
    searchOrder() {
      this.pageNum = 1;
      this.keyword = "";

      setTimeout(() => {
        if (this.currentTab2 == 2) {
          this.getSalesReturnOrderList();
        } else {
          this.getOrderList();
        }
      }, 600);
    },
    scrolltolower() {
      clearTimeout(this.time);
      if (this.isDownNoOrderData) return;
      this.loadingDownOnlinData = true;
      this.time = setTimeout(() => {
        this.pageNum = this.pageNum + 1;
        this.getOrderList();
      }, 500);
    },
    scrollSalesReturnTolower() {
      clearTimeout(this.time);
      if (this.isDownNoSalesReturnData) return;
      this.loadingDownSalesReturnData = true;
      this.time = setTimeout(() => {
        this.pageNum = this.pageNum + 1;
        this.getSalesReturnOrderList();
      });
    },
    handleShowDropDown() {
      this.showDropdown = !this.showDropdown;
    },
    handerCancelOrder() {
      this.pageNum = 1;
      this.getOrderList();
    },
    handerShowCancelOrder(item) {
      this.currOrderItem = JSON.parse(JSON.stringify(item));
      this.showCancelOrderPopup = true;
      this.isCancelOrder = true;
    },
    handerShowPartOrderRefund(item) {
      let _item = JSON.parse(JSON.stringify(item));

      _item.order_items.forEach((group) => {
        group.order_item_quantity_2 = group.order_item_quantity;
      });

      this.currOrderItem = _item;

      this.showPartOrderRefundPopup = true;
      this.isCancelOrder = false;
    },
    handerRefreshSalesReturnOrderList() {
      this.getSalesReturnOrderList();
    },

    handerRetrunOrderScreen() {
      this.pageNum = 1;
      this.loadingDownSalesReturnData = false;
      this.isNoSalesReturnOrderData = false;
      this.isDownNoSalesReturnData = false;
      this.getSalesReturnOrderList(this.salesReturnBtnSearchAcitve);
      this.showScreenPopup = false;
    },
    async getOrderPicking(item) {
      let params = {
        order_id: this.currOrderItem.order_id,
        store_id: this.currOrderItem.store_info.store_id,
      };

      let res = await GetOrderPicking(params);
      if (res && res.status == 200) {
        this.showOrderPickingPopup = false;
        uni.$u.toast("操作成功");
      }
      this.showOrderPickingPopup = false;
    },
	//IM发送 之前客服的位置方法 暂时不用了
    toServices() {
      let item = {
        user_friend_id: 36,
        user_id: 10001,
        friend_id: 10001,
        friend_note: "",
        user_friend_addtime: "2025-05-09 10:03:33",
        friend_state: 2,
        friend_invite: 2,
        username: "系统客服",
        avatar:
          "https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/media/media/plantform/20250307/c4cab676e06a49b282c2cbbe481f0fa1.png",
        sign: "",
        level_name: "v1",
        user_nickname: "系统客服",
        user_avatar:
          "https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/media/media/plantform/20250307/c4cab676e06a49b282c2cbbe481f0fa1.png",
        user_sign: "",
        user_level_name: "v1",
        rid: 2,
        id: 776395489,
      };

      uni.navigateTo({
        url: `/pages/IM/IMmsgContent?item=${JSON.stringify(item)}`,
      });
    },
	openPhoneDial(){
		uni.makePhoneCall({
		    phoneNumber: '17777525395',
		    // 可选：添加拨号失败回调
		    fail: (err) => {
		      console.log('拨号失败', err);
		      this.$refs.uToast.show({ title: '拨号失败，请稍后重试' });
		    }
		  });
		  }
  }
};
</script>

<style lang="scss">
@import "@/styles/variables.scss";
.index-container {
  // overflow: hidden;
  background: #f9f9f9;
  min-height: 100vh;
  .shop-info {
    display: flex;
    align-items: center;
    padding: 28rpx 32rpx;

    .shop-logo-img {
      width: 64rpx;
      height: 64rpx;
      background-image: url("../../static/logo.jpg");
      background-size: 100% 100%;
      border-radius: 50%;
    }

    .search {
      margin: 0 44rpx !important;

      ::v-deep.u-search__content {
        height: 38px !important;
      }

      ::v-deep.u-search__content__input {
        font-size: 12px;
      }
    }

    .shop-name {
      margin-left: 20rpx;
      font-weight: bold;
      background: #fff;
    }
  }

  .order-loading {
    margin: 70% auto;
    display: flex;
  }

  .tab-content {
    padding: 0 20rpx;
    padding-bottom: 16rpx;
    border-bottom: 1px solid #eeeeee;
    background: #f9f9f9;
    // ::v-deep .tui-tabs-title {
    //   font-size: 36rpx !important;
    // }
    ::v-deep .tui-tabs__badge {
      line-height: 32rpx;
    }
  }

  .tab2-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 30rpx 0;

    ::v-deep .tui-tabs-slider {
      background: #ffecf2 !important;
      bottom: 48% !important;
      display: none;
    }

    ::v-deep.tabs-2 {
      left: -10px;
    }

    ::v-deep .tui-tabs-item {
      margin: 0 10rpx;
      height: 32px !important;
      line-height: 32px !important;
      background: #fff;

      .tui-tabs-title {
        color: rgba(34, 34, 34, 1) !important;
      }
      &.tui__tab_current {
        background: #ffecf2 !important;
        .tui-tabs-title {
          color: #fe411b !important;
        }
      }
    }

    .screen-content {
      display: flex;
      flex-flow: column;
      align-items: center;
      font-size: 24rpx;
      text-align: center;
      margin-right: 32rpx;
      color: $base-color;
    }
  }

  .sales-return-img-title {
    margin: 20rpx;
    font-weight: bold;
  }

  .sales-return-img-list {
    display: flex;
    flex-wrap: wrap;
    margin: 40rpx 20rpx;
  }

  .search-contetn {
    display: flex;
    align-items: center;
    padding: 30rpx 40rpx 40rpx;

    .btn-content {
      margin-left: 20rpx;
      padding: 16rpx 20rpx;
      width: 200rpx;
      border-radius: 60rpx;
      background: #fff;
      color: #333333;
      font-size: 14px;
      text-align: center;
    }
  }

  .sales-retrun-btn-list {
    margin: 30rpx 10rpx 0;
    height: 160rpx;

    .sales-retrun-btn-item {
      float: left !important;
      height: 60rpx;
      margin-left: 20rpx;
      margin-bottom: 20rpx;
      border: none;
      font-size: 24rpx;

      ::after {
        border: none;
      }
    }

    .active {
      // background: $base-color;
      color: $base-color;

      &::after {
        border: 1px solid $base-color;
      }
    }
  }

  .order-info-content {
    margin: 28rpx 24rpx;
    border-radius: 8rpx;

    .uni-swiper-list {
      height: calc(100vh - 500rpx);
    }

    .uni-swiper-return-list {
      height: calc(100vh - 500rpx);
    }

    .order-msg-tips {
      padding: 12rpx;
      height: 72rpx;
      line-height: 72rpx;
      font-size: 26rpx;
      background: #efdfc7;
      color: #d9001b;
    }

    .steps-content {
      padding: 20rpx;
      border-bottom: 1px solid #d7d7d7;

      .steps-title {
        font-size: 20px;
        font-weight: bold;
        color: #333333;
      }

      .steps-item-1 {
        ::v-deep.u-text__value--tips {
          margin: 40rpx 0;
        }
      }
    }

    .order-info-block {
      margin: 28rpx;
      border-radius: 24rpx;
      overflow: hidden;
      background: #fff;
      box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1);
      transition: height 0.5s ease;

      // // #ifdef H5
      // height: 380rpx;
      // // #endif

      // // #ifdef APP-PLUS
      // height: 360rpx;
      // // #endif

      .order-info-hander {
        margin: 24rpx;
        font-size: 32rpx;
        border-bottom: 1px solid #f7f7f7;

        .order-num-block {
          display: flex;
          justify-content: space-between;
          align-items: center;

          .order-serial-num {
            color: #333333;
          }
        }
        .rider-info {
          display: flex;
          justify-content: space-between;
          align-items: center;
          padding: 24rpx 0;
          color: #333333;

          .delivery-time {
            font-size: 26rpx;
          }
        }

        .order-num {
          font-size: 24rpx;
        }

        .delivery-status {
          font-size: 32rpx;
          font-weight: bold;
          color: $base-color;
        }
      }

      .user-info-block {
        padding: 32rpx 0;
        margin: 0 24rpx;
        border-bottom: 1px solid #f7f7f7;

        .user-info {
          display: flex;
          align-items: center;
          font-size: 26rpx;
          margin-bottom: 20rpx;
        }

        .user-address {
          font-size: 24rpx;
          margin-bottom: 20rpx;
        }

        .distance {
          font-size: 24rpx;
        }
      }

      .picking-info {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 32rpx 0;
        margin: 0 24rpx;
        border-bottom: 1px solid #f7f7f7;

        .picking-status {
          font-size: 26rpx;
          color: #7f7f7f;
          font-weight: 500;
          flex: 1;
        }

        .picking-btn {
          width: 34%;
          height: 60rpx;
          font-size: 24rpx;
          border-radius: 32rpx;
          background: $base-color;
          color: #fff;
          border: none;
        }
      }

      .delivery-status-info {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 32rpx 0;
        margin: 0 24rpx;
        border-bottom: 1px solid #f7f7f7;
        color: #333333;

        .delivery-status {
          font-size: 40rpx;
          font-weight: 700;
        }

        .delivery-num {
          font-size: 26rpx;
        }
      }

      .order-remark {
        margin: 12rpx;
        padding: 12rpx;
        background: $base-color;
        color: #fff;
      }

      .commodity-info-block {
        padding: 12rpx 0;
        margin: 0 24rpx;
        border-bottom: 1px solid #f7f7f7;

        .commodity-num {
          font-size: 28rpx;
        }

        .commodity-info {
          margin: 16rpx 8rpx;
          display: flex;
          // justify-content: space-between;
          align-items: center;
          color: #333333;

          .commodity-info-img {
            width: 120rpx;
            height: 120rpx;
          }

          .commodity-content {
            width: 50%;
            margin-left: 16rpx;

            .commodity-name {
              font-size: 28rpx;
            }

            .commodity-barcode,
            .commodity-specification {
              font-size: 24rpx;
            }
          }

          .commodity-num {
            flex: 1;
          }
        }
      }

      .baling-charges-block {
        display: flex;
        justify-content: space-between;
        padding: 24rpx 0;
        margin: 0 24rpx;
        font-size: 24rpx;
        border-bottom: 1px solid #f7f7f7;
        color: #aaaaaa;
      }

      .cost-info-block {
        padding: 24rpx 0;
        margin: 0 24rpx;
        border-bottom: 1px solid #f7f7f7;
        font-size: 26rpx;

        .cost-info-item {
          display: flex;
          justify-content: space-between;
          margin-bottom: 40rpx;

          .cost-info-num {
            margin-right: 20rpx;
          }
        }

        .cost-info-income {
          margin-top: 20rpx;
          font-size: 26rpx;
          text-align: right;
          color: #7f7f7f;
        }
      }

      .predict-income {
        margin-bottom: 40rpx;
      }

      .order-btn-block {
        padding: 24rpx;
        .btn-list {
          display: flex;
          justify-content: flex-end;
          .btn-item {
            margin: 0;
            margin-left: 24rpx;
            width: 160rpx;
            height: 60rpx;
            font-size: 24rpx;
            border-radius: 32rpx;
            background: $base-color;
            color: #fff;
            border: none;
          }
        }

        .arrow-item {
          display: flex;
          align-items: center;
          justify-content: flex-end;
          margin-top: 40rpx;
          font-size: 26rpx;
          color: #cccccc;

          .time {
            color: #333333;
          }
        }

        .arrow-item-2 {
          justify-content: space-between;
        }
      }
    }

    // .order-info-oepn {
    //   // #ifdef H5
    //   height: 940px;
    //   // #endif

    //   // #ifdef APP-PLUS
    //   height: 1460rpx;
    //   // #endif
    // }

    // .order-abnormal {
    //   // #ifdef H5
    //   height: 900px;
    //   // #endif

    //   // #ifdef APP-PLUS
    //   height: 1400rpx;
    //   // #endif
    // }

    // .order-refund {
    //   // #ifdef H5
    //   height: 480rpx;
    //   // #endif

    //   // #ifdef APP-PLUS
    //   height: 460rpx;
    //   // #endif
    // }

    // .order-refund-open {
    //   // #ifdef H5
    //   height: 1150px;
    //   // #endif

    //   // #ifdef APP-PLUS
    //   height: 1850rpx;
    //   // #endif
    // }
  }

  .m-loading-box {
    text-align: center;
    margin: 40rpx;
    color: #aaaa;
    font-size: 28rpx;
  }

  .screen-popup {
    .screen-popup-content {
      width: 100%;

      .screen-popup-title {
        margin: 36rpx;
        text-align: center;
        font-weight: bold;
        font-size: 36rpx;
      }

      .popup-btn-list {
        display: flex;
        margin: 50rpx;

        .btn-item {
          width: 46%;
          height: 80rpx;
          border-color: #909193;

          &::after {
            border: none;
          }
        }

        .btn-item-2 {
          background: $base-color;
          color: #fff;
          border: none;
        }
      }
    }
  }

  .no-data {
    .no-data-bg {
      margin: 23% auto;
      margin-bottom: 0;
      width: 480rpx;
      height: 480rpx;
      background-image: url("../../static/no-order-data.png");
      background-size: 100%;
    }
    .no-data-tips {
      margin: 20rpx auto 0;
      color: #aaaaaa;
      text-align: center;
    }
  }

  .part-order-refund-popup {
    ::v-deep.u-popup__content {
      border-top-left-radius: 16rpx;
      border-top-right-radius: 16rpx;
    }

    ::v-deep.u-fade-enter-to {
      z-index: 10079 !important;
    }

    .part-order-refund-popup-content {
      .part-order-refund-popup-title {
        padding: 40rpx;
        text-align: center;
        font-weight: bold;
      }

      .affirm-popup-form {
        padding: 20rpx 60rpx;
      }

      .radio-list {
        .commodity-info-item {
          display: flex;
          align-items: center;
          justify-content: space-between;
          padding: 0 28rpx;

          .commodity-info-box {
            display: flex;
            align-items: center;
            justify-content: space-between;

            .commodity-info-img {
              margin-right: 20rpx;
              width: 120rpx;
              height: 120rpx;
            }
          }
        }
      }
    }

    .popup-btn-list {
      display: flex;
      margin: 50rpx;

      .btn-item {
        width: 46%;
        height: 64rpx;
        border-color: #909193;

        &::after {
          border: none;
        }
      }

      .btn-item-2 {
        background: $base-color;
        color: #fff;
        border: none;
      }
    }
  }

  .tui-animation {
    display: inline-block;
    transform: rotate(0deg);
    transition: all 0.2s;
  }

  .tui-animation-show {
    transform: rotate(180deg);
  }

  .icon-phone-fill {
    margin-left: 10%;
  }

  .retrun-state-name {
    color: $base-color;
  }
}
</style>
