<template>
  <view class="content">
    <view class="header">
      <view class="headernei" @click="isTop = true">
        <img src="@/assets/images/search.png" alt="" />
      </view>
    </view>
    <view class="kuang" v-for="(item, index) in tableData" :key="index">
      <table class="tftable" border="1">
        <tr>
          <td align="right">{{ '订单编号' }}</td>
          <td align="left">{{ item.orderCode }}</td>
        </tr>
        <tr>
          <td align="right">{{ '订单类型' }}</td>
          <td align="left">{{ item.orderTypeStr }}</td>
        </tr>
        <tr>
          <td align="right">{{ '会员编号' }}</td>
          <td align="left">{{ item.memberCode }}</td>
        </tr>
        <tr>
          <td align="right">{{ '会员姓名' }}</td>
          <td align="left">{{ item.memberName }}</td>
        </tr>
        <tr>
          <td align="right">{{ '联系方式' }}</td>
          <td align="left">{{ item.phone }}</td>
        </tr>
        <tr>
          <td align="right">{{ '收货人' }}</td>
          <td align="left">{{ item.recName }}</td>
        </tr>
        <tr>
          <td align="right">{{ '收货电话' }}</td>
          <td align="left">{{ item.recPhone }}</td>
        </tr>
        <tr>
          <td align="right">{{ '省' }}</td>
          <td align="left">{{ item.recProvinceName }}</td>
        </tr>
        <tr>
          <td align="right">{{ '市' }}</td>
          <td align="left">{{ item.recCityName }}</td>
        </tr>
        <tr>
          <td align="right">{{ '区/县' }}</td>
          <td align="left">{{ item.recCountryName }}</td>
        </tr>
        <tr>
          <td align="right">{{ '详细地址' }}</td>
          <td align="left">{{ item.recAddress }}</td>
        </tr>
        <tr>
          <td align="right">{{ '订单金额' + `(${isLocalSymbol()})` }}</td>
          <td align="left">
            {{ item.orderAmount | toThousandthAndKeepDecimal }}
          </td>
        </tr>
        <tr>
          <td align="right">{{ '订单邮费' + `(${isLocalSymbol()})` }}</td>
          <td align="left">
            {{ item.postage | toThousandthAndKeepDecimal }}
          </td>
        </tr>
        <tr>
          <td align="right">{{ '订单业绩' + `(${isLocals()})` }}</td>
          <td align="left">
            {{ item.orderAchieve | toThousandthAndKeepDecimal }}
          </td>
        </tr>

        <tr>
          <td align="right">{{ '发货方式' }}</td>
          <td align="left">{{ item.deliveryWayStr }}</td>
        </tr>
        <tr>
          <td align="right">{{ '支付方式' }}</td>
          <td align="left">{{ item.payTypeStr }}</td>
        </tr>
        <tr>
          <td align="right">{{ '备注' }}</td>
          <td align="left">{{ item.remark }}</td>
        </tr>
        <tr>
          <td align="right">{{ '开票备注' }}</td>
          <td align="left">{{ item.remarks }}</td>
        </tr>
        <tr>
          <td align="right">{{ '创建日期' }}</td>
          <td align="left">{{ item.creationTime }}</td>
        </tr>
        <tr>
          <td align="right">{{ '支付日期' }}</td>
          <td align="left">{{ item.payTime }}</td>
        </tr>
      </table>
      <view
        style="
          padding: 20rpx 200rpx;
          border-top: 2rpx solid rgba(0, 0, 0, 0.03);
        "
      >
        <u-button
          @click="addRemarks(item)"
          color="#C8161D"
          v-hasButtons="['CommodityAddRemarks']"
          :text="'开票备注'"
          class="btnn"
        ></u-button>
      </view>
    </view>

    <!-- 顶部搜索 -->
    <u-popup :show="isTop" mode="top" @close="isTop = false">
      <view class="tt">
        <u--form
          labelPosition="left"
          labelWidth="auto"
          :model="select"
          ref="uForm"
        >
          <u-row gutter="10">
            <u-col span="6">
              <u-form-item :label="'订单编号'">
                <u--input fontSize="12" v-model="select.orderCode"></u--input>
              </u-form-item>
            </u-col>
            <u-col span="6">
              <u-form-item :label="'会员编号'">
                <u--input fontSize="12" v-model="select.memberCode"></u--input>
              </u-form-item>
            </u-col>
          </u-row>

          <u-row gutter="10">
            <u-col span="6">
              <u-form-item :label="'会员姓名'">
                <u--input fontSize="12" v-model="select.memberName"></u--input>
              </u-form-item>
            </u-col>
            <u-col span="6">
              <u-form-item :label="'联系方式'">
                <u--input fontSize="12" v-model="select.phone"></u--input>
              </u-form-item>
            </u-col>
          </u-row>

          <u-row>
            <u-col span="6">
              <u-form-item :label="'订单类型'">
                <picker
                  :range="typeList"
                  range-key="label"
                  @change="bindPickerChange1"
                >
                  <u--input
                    disabled
                    fontSize="12"
                    disabledColor="#ffffff"
                    v-model="select.typeVal"
                    suffixIcon="arrow-down"
                    suffixIconStyle="font-size: 12px;"
                  ></u--input>
                </picker>
              </u-form-item>
            </u-col>
            <u-col span="6">
              <u-form-item :label="'发货方式'">
                <picker
                  :range="fhwayList"
                  range-key="label"
                  @change="bindPickerChange2"
                >
                  <u--input
                    disabled
                    fontSize="12"
                    disabledColor="#ffffff"
                    v-model="select.deliveryVal"
                    suffixIcon="arrow-down"
                    suffixIconStyle="font-size: 12px;"
                  ></u--input>
                </picker>
              </u-form-item>
            </u-col>
          </u-row>

          <u-row gutter="10">
            <u-col span="6">
              <u-form-item :label="'收货人'">
                <u--input fontSize="12" v-model="select.recName"></u--input>
              </u-form-item>
            </u-col>
            <u-col span="6">
              <u-form-item :label="'收货电话'">
                <u--input fontSize="12" v-model="select.recPhone"></u--input>
              </u-form-item>
            </u-col>
          </u-row>
         
          <u-row gutter="10">
            <u-col span="12">
              <u-form-item :label="'支付方式'">
                <picker
                  :range="paywayList"
                  range-key="label"
                  @change="bindPickerChange3"
                >
                  <u--input
                    disabled
                    fontSize="12"
                    disabledColor="#ffffff"
                    v-model="select.payTypeVal"
                    suffixIcon="arrow-down"
                    suffixIconStyle="font-size: 12px;"
                  ></u--input>
                </picker>
              </u-form-item>
            </u-col>
          </u-row>
          <u-row gutter="10">
            <u-col span="12">
              <u-form-item :label="'收货地址'"
                           @click='getDiqu'>
                <u--input disabled
                          fontSize="12"
                          disabledColor="#ffffff"
                          v-model="select.diqu"
                          suffixIcon="arrow-down"
                          suffixIconStyle="font-size: 12px;"></u--input>
              </u-form-item>
            </u-col>
          </u-row>
          <u-row gutter="10">
            <u-col span="12">
              <u-form-item :label="'详细地址'">
                <u--input  v-model="select.recAddress"></u--input>
              </u-form-item>
            </u-col>
          </u-row>
          <u-row gutter="10">
            <u-col span="12">
              <u-form-item
                :label="'创建日期'"
                @click="(isData = true), (setTime = 0)"
              >
                <u--input
                  disabled
                  fontSize="12"
                  disabledColor="#ffffff"
                  v-model="select.creationTimeVal"
                  suffixIcon="arrow-down"
                  suffixIconStyle="font-size: 12px;"
                ></u--input>
              </u-form-item>
            </u-col>
          </u-row>
          <u-row gutter="10">
            <u-col span="12">
              <u-form-item
                :label="'支付日期'"
                @click="(isData = true), (setTime = 1)"
              >
                <u--input
                  disabled
                  fontSize="12"
                  disabledColor="#ffffff"
                  v-model="select.payVal"
                  suffixIcon="arrow-down"
                  suffixIconStyle="font-size: 12px;"
                ></u--input>
              </u-form-item>
            </u-col>
          </u-row>
        </u--form>
        <view class="footer">
          <u-button
            @click="getList1"
            color="#C8161D"
            text="搜索"
            class="btnn"
          ></u-button>
          <u-button @click="reset" text="重置"></u-button>
        </view>
      </view>
    </u-popup>
    <u-popup :show="addReShow" mode="center" @close="addReShow = false">
      <view class="tt2">
        <u--form
          labelPosition="left"
          labelWidth="auto"
          :model="addreForm"
          ref="uForm2"
        >
          <u-row gutter="10">
            <u-col span="12">
              <u-form-item :label="'开票备注'">
                <u--input fontSize="12" v-model="addreForm.remarks"></u--input>
              </u-form-item>
            </u-col> </u-row
        ></u--form>
        <view class="footer">
          <u-button
            @click="sureAddRemarks"
            color="#C8161D"
            :text="'确定'"
            class="btnn"
          ></u-button>
        </view>
      </view>
    </u-popup>
    <u-calendar
      @close="isData = false"
      :closeOnClickOverlay="true"
      :show="isData"
      mode="range"
      :allowSameDay="true"
      :maxDate="calendar.maxDate"
      :minDate="calendar.minDate"
      :monthNum="calendar.monthNum"
      @confirm="confirm"
    ></u-calendar>
    <!-- 悬浮球 -->
    <drag-button />
    <!-- <export-ball ref="exportBall" @handleExport="handleExport" /> -->
     <!-- 选择地址 -->
     <v-address ref="address"
               :defaultCode="defaultCode"
               @addressData="addressData"></v-address>
  </view>
</template>
        
        <script>
import * as api from "@/api/logistics";
import { isLocals, isLocalSymbol } from "@/util/numberToCurrency";
import address from '@/components/address.vue'
export default {
  components: {
    'v-address': address,
  },
  data() {
    return {
      select: {},
      isTop: false,
      isData: false,
      total: 0,
      queryParams: {
        pageNum: 1,
        pageSize: 20,
      },
      tableData: [],
      typeList: [], //订单类型
      fhwayList: [], //发货方式
      paywayList: [], //支付方式
      userCountry: {},
      addReShow: false,
      pkOrder: "",
      addreForm: {},
      calendar: {
        minDate: "",
        maxDate: "",
        monthNum: 25,
      },
    };
  },
  onLoad(options) {
    if (uni.getStorageSync("userAll")) {
      this.userCountry = JSON.parse(uni.getStorageSync("userAll")).country;
    }

    this.getSearch();
    // 获取下拉
    this.getData();
    this.chooseTimed();
  },
  methods: {
    isLocalSymbol,
    isLocals,
    getDiqu() {
      this.$refs.address.setShow()
    },
    addressData(diqu, obj) {
      this.select.diqu = diqu
      this.select.recProvince = obj.province
      this.select.recCity = obj.city
      this.select.recCountry = obj.county
      this.$forceUpdate()
    },
    // 设置默认日期，最大值为今天，最小值为去年今天
    chooseTimed() {
      let date = new Date();
      let year = date.getFullYear();
      let month = date.getMonth() + 1;
      let day = date.getDate();
      if (month <= 9) {
        month = "0" + month;
      }
      if (day <= 9) {
        day = "0" + day;
      }
      let minyear = year - 1;
      let maxyear = year + 1;
      this.calendar.minDate = minyear + "-" + month + "-" + day;
      this.calendar.maxDate = maxyear + "-" + month + "-" + day;
    },
    getData() {
      api.getOrderType().then((res) => {
        this.typeList = res.data;
      });
      api.getDeliveryList().then((res) => {
        this.fhwayList = res.data;
      });
      api.getOrderPayType().then((res) => {
        this.paywayList = res.data;
      });
    },
    addRemarks(row) {
      this.addReShow = true;
      this.pkOrder = row.pkOrder;
    },
    sureAddRemarks() {
      api
        .updateOrderRemarks({
          pkOrder: this.pkOrder,
          remarks: this.addreForm.remarks,
        })
        .then((res) => {
          if (res.code == 200) {
            uni.$u.toast(res.msg);
            this.addReShow = false;
            this.getList1();
          }
        });
    },
    onReachBottom() {
      this.queryParams.pageNum++;
      this.getSearch();
    },
    getSearch() {
      api
        .getOrderList(Object.assign({}, this.queryParams, this.select))
        .then((res) => {
          this.total = res.total;
          this.tableData = this.tableData.concat(res.rows);
        });
    },
    getList1() {
      this.tableData = [];
      this.queryParams.pageNum = 1;
      this.isTop = false;
      this.getSearch();
    },
    reset() {
      this.select = {};
      this.getSearch();
    },
    handleExport() {
      let url = "/sale/manage/order/get-order-list-export";
      let obj = Object.assign({}, this.select, this.queryParams);
      this.$refs.exportBall.handleExport(url, obj, '商品订单');
    },
    bindPickerChange2(e) {
      this.$set(
        this.select,
        "deliveryVal",
        this.fhwayList[e.detail.value].label
      );
      this.$set(
        this.select,
        "deliveryWay",
        this.fhwayList[e.detail.value].value
      );
    },
    bindPickerChange3(e) {
      this.$set(
        this.select,
        "payTypeVal",
        this.paywayList[e.detail.value].label
      );
      this.$set(this.select, "payType", this.paywayList[e.detail.value].value);
    },
    bindPickerChange1(e) {
      this.$set(this.select, "typeVal", this.typeList[e.detail.value].label);
      this.$set(this.select, "orderType", this.typeList[e.detail.value].value);
    },

    confirm(e) {
      if (this.setTime == 0) {
        this.$set(this.select, "startCreateDate", e[0]);
        this.$set(this.select, "endCreateDate", e[e.length - 1]);
        this.$set(
          this.select,
          "creationTimeVal",
          e[0] + " 至 " + e[e.length - 1]
        );
      } else {
        this.$set(this.select, "startPayDate", e[0]);
        this.$set(this.select, "endPayDate", e[e.length - 1]);
        this.$set(this.select, "payVal", e[0] + " 至 " + e[e.length - 1]);
      }

      this.isData = false;
    },
  },
};
</script>
        
<style lang="scss" scoped>
.content {
  background: #f9f9f9;
  padding: 20rpx 24rpx;
}
.header {
  background: #ffffff;
  box-shadow: 0px 2px 10px 0px rgba(204, 204, 204, 0.4);
  border-radius: 20rpx;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20rpx;
  .headernei {
    background: rgba(216, 216, 216, 0);
    border-radius: 64rpx;
    opacity: 1;
    border: 2rpx solid #259dfe;
    width: 100%;
    padding: 22rpx 20rpx;
    img {
      width: 24rpx;
      height: 24rpx;
    }
  }
}
.kuang {
  background: #ffffff;
  box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(204, 204, 204, 0.4);
  border-radius: 20rpx;
  margin-bottom: 20rpx;
}
.tftable {
  border-collapse: collapse;
  width: 100%;
  background: #fff;
  border: 1px solid #f9f9f9;
  margin-top: 20rpx;
  td {
    font-size: 24rpx;
    font-family: PingFang SC-Medium, PingFang SC;
    font-weight: 500;
    color: #999;
    padding: 20rpx 40rpx;
    width: 50%;
  }
  tr :nth-child(2) {
    color: #333333;
    font-size: 26rpx;
  }
  .theflex {
    display: flex;
    align-items: center;
  }
}
.che {
  padding: 20rpx 40rpx;
}
.tt {
  padding: 20rpx;
  margin-top: 20px;
  font-size: 24rpx;
}
.tt2 {
  padding: 20rpx;
  margin-top: 20px;
  font-size: 24rpx;
}
::v-deep .u-transition {
  z-index: 998 !important;
}
.footer {
  display: flex;
  align-items: center;
  padding: 20rpx 60rpx;
  font-size: 24rpx;
  .btnn {
    margin-right: 40rpx;
  }
}
::v-deep .tt .u-input {
  padding: 0 9px !important;
}
::v-deep .tt .u-form-item__body__left__content__label {
  font-size: 12px;
}
::v-deep .tt .u-form-item__body {
  padding: 5px 0;
}
</style>