<template>
  <div class="content">
    <!-- 寄件地址 -->
    <div class="jjinfo">
      <div>
        <div class="jj">
          <div class="jjaddress">
            <p>寄</p>
            <div>
              <p v-if="jjname == '' || jjname == ' '">寄件地址</p>
              <p v-else>{{ jjname }}</p>
              <p v-if="jjadd == '' || jjadd == ' '" @click="addtype(1)">
                填写寄件地址
              </p>
              <p v-else @click="addtype(1)">{{ jjadd }}</p>
            </div>
          </div>
          <div class="dzb" @click="link(1)">
            <img src="../assets/images/addlist.png" alt="" />
            <p>地址簿</p>
          </div>
        </div>
        <div class="jj" style="border-top:.01rem solid #ededed">
          <div class="jjaddress">
            <p style="background: #fa9c22;">收</p>
            <div>
              <p v-if="sjname == '' || sjname == ' '">收件地址</p>
              <p v-else>{{ sjname }}</p>
              <p v-if="sjadd == '' || sjadd == ' '" @click="addtype(2)">
                填写收件地址
              </p>
              <p v-else @click="addtype(2)">{{ sjadd }}</p>
            </div>
          </div>
          <div class="dzb" @click="link(2)">
            <img src="../assets/images/addlist.png" alt="" />
            <p>地址簿</p>
          </div>
        </div>
      </div>
    </div>
    <!-- 寄件属性 -->
    <div class="choose">
      <div>
        <div class="type_wp">
          <div>
            <p>物品类型</p>
            <p v-if="wptype == ''" @click="wpshow = true">请选择</p>
            <p v-else @click="wpshow = true">{{ wptype }}</p>
          </div>
          <div>
            <p>重量(公斤)</p>
            <p>
              <van-field name="stepper" style="padding: 0px;">
                <template #input>
                  <van-stepper v-model="stepper"></van-stepper>
                </template>
              </van-field>
            </p>
          </div>
        </div>
        <div class="type_price">
          <div>
            <p>付款方式</p>
            <p v-if="pricetype == ''" @click="priceshow = true">请选择</p>
            <p v-else @click="priceshow = true">{{ pricetype }}</p>
          </div>
          <div>
            <p>声明价值</p>
            <p>0元</p>
          </div>
        </div>
      </div>
    </div>
    <!-- 备注 -->
    <div class="bz">
      <div>
        <van-field
          v-model="bz"
          name="备注"
          label="备注"
          placeholder="包装运输等要求"
        />
      </div>
    </div>
    <!-- 我同意 -->
    <div class="check">
      <van-checkbox icon-size=".24rem" v-model="check" shape=""
        >我同意《电子运单契约条款》</van-checkbox
      >
    </div>
    <!-- 寄件 -->
    <div class="btn-jj">
      <van-button type="info" color="#0c2469">立即寄件</van-button>
    </div>
    <!-- 弹窗物品类型 -->
    <van-popup v-model="wpshow" position="bottom">
      <van-picker
        title="物品类型"
        show-toolbar
        :columns="wplist"
        @confirm="onConfirm1"
        @cancel="wpshow = false"
      />
    </van-popup>
    <!-- 弹窗付款方式 -->
    <van-popup v-model="priceshow" position="bottom">
      <van-picker
        title="付款方式"
        show-toolbar
        :columns="pricelist"
        @confirm="onConfirm2"
        @cancel="priceshow = false"
      />
    </van-popup>
    <!-- 填写地址 -->
    <van-popup
      round
      v-model="addshow"
      class="whrite_add"
      closeable
      closed="close"
    >
      <div>
        <p style="font-size: 16px;text-align: center;margin-bottom: 16px;">
          {{ title }}
        </p>
        <van-form @submit="onSubmit">
          <van-field
            v-model="name"
            name="姓名"
            label="姓名"
            placeholder="请输入姓名"
            :rules="[{ required: false }]"
          />
          <van-field
            v-model="phone"
            maxlength="11"
            type="number"
            name="手机"
            label="手机"
            placeholder="请输入手机"
            :rules="[{ required: false }]"
          />
          <van-field
            readonly
            clickable
            name="area"
            :value="city"
            label="省市区"
            placeholder="请选择省市区"
            @click="areashow = true"
            :rules="[{ required: false }]"
          />
          <van-field
            v-model="address"
            name="详细地址"
            label="详细地址"
            placeholder="请输入详细地址"
            :rules="[{ required: false }]"
          />
          <div style="margin-top: 16px;">
            <van-button color="#0c2469" block type="info" native-type="submit"
              >确定</van-button
            >
          </div>
        </van-form>
      </div>
    </van-popup>
    <!-- 城市选择 -->
    <van-popup v-model="areashow" position="bottom">
      <van-area
        :area-list="areaList"
        @confirm="onConfirm3"
        @cancel="areashow = false"
      />
    </van-popup>
  </div>
</template>

<script>
import areaList from "@/script/areas.js";
import { Stepper, Toast } from "vant";
export default {
  data() {
    return {
      titlename: "寄件",
      wptype: "", //物品类型
      wpshow: false, //物品类型弹窗显示
      wplist: ["日用品", "食品", "文件", "衣物", "数码产品", "其他"],
      pricetype: "", //付款类型
      stepper: "",
      priceshow: false, //付款类型弹窗显示
      pricelist: ["月结", "日结", "到付"],
      addshow: false,
      name: "",
      phone: "",
      city: "",
      address: "",
      areashow: false,
      index: "",
      title: "",
      jjname: "",
      jjadd: "",
      sjname: "",
      sjadd: "",
      bz: "",
      check: false,
      openid: ""
    };
  },
  created: function() {
    this.openid = this.$store.state.openId;

    //寄件地址
    if (JSON.stringify(this.$store.state.jjInfo) != "{}") {
      this.jjname = this.$store.state.jjInfo.jjname;
      this.jjadd = this.$store.state.jjInfo.jjadd;
    }

    //收件地址
    if (JSON.stringify(this.$store.state.sjInfo) != "{}") {
      this.sjname = this.$store.state.sjInfo.jjname;
      this.sjadd = this.$store.state.sjInfo.jjadd;
    }
  },
  methods: {
    // 选择物品确定
    onConfirm1(e) {
      //确定
      this.wptype = e;
      this.wpshow = false;
      console.log(e);
    },
    // 选择付款方式确定
    onConfirm2(e) {
      //确定
      this.pricetype = e;
      this.priceshow = false;
      console.log(e);
    },
    // 填写地址确定
    onConfirm3(e) {
      //确定
      this.city = e[0].name + " " + e[1].name + " " + e[2].name;
      this.areashow = false;
      console.log(e);
    },
    // 寄件地址1与收件地址2
    addtype(obj) {
      this.index = obj;
      if (obj == 1) {
        this.title = "寄件地址";
      }
      if (obj == 2) {
        this.title = "收件地址";
      }
      this.addshow = true;
    },
    // 填写地址确定
    onSubmit() {
      if (this.name == "" || this.name == undefined) {
        Toast("请填写姓名");
        return;
      }
      if (this.phone == "" || this.phone == undefined) {
        Toast("请填写手机");
        return;
      }
      let regPhone = new RegExp(this.$store.state.regPhone);
      if (!regPhone.test(this.phone)) {
        Toast("手机号格式不正确");
        return;
      }
      if (this.city == "" || this.city == undefined) {
        Toast("请选择省市区");
        return;
      }
      if (this.address == "" || this.address == undefined) {
        Toast("请填写详细地址");
        return;
      }
      if (this.index == 1) {
        this.jjname = this.name + " " + this.phone;
        this.jjadd = this.city + " " + this.address;
        let jjInfo = {};
        jjInfo.jjname = this.jjname;
        jjInfo.jjadd = this.jjadd;
        this.$store.commit("getJjInfo", jjInfo);
      }
      if (this.index == 2) {
        this.sjname = this.name + " " + this.phone;
        this.sjadd = this.city + " " + this.address;
        let sjInfo = {};
        sjInfo.sjname = this.sjname;
        sjInfo.jjadd = this.sjadd;
        this.$store.commit("getSjInfo", sjInfo);
      }

      this.addshow = false;
      this.name = "";
      this.phone = "";
      this.city = "";
      this.address = "";
    },
    close() {
      this.name = "";
      this.phone = "";
      this.city = "";
      this.address = "";
    },
    // 地址簿跳转
    link(obj) {
      this.$router.push({ path: "/Addressbook", query: { active: obj } });
    }
  },
  computed: {
    areaList() {
      return areaList;
    }
  }
};
</script>

<style scoped lang="less">
.content {
  .jjinfo {
    font-size: 0.24rem;
    color: #999999;
    padding: 0.33rem;

    > div {
      background: white;
      border-radius: 0.05rem;
      padding: 0.1rem 0.3rem;

      .jj {
        display: flex;
        justify-content: space-between;
        padding: 0.2rem 0rem;

        .jjaddress {
          display: flex;
          padding: 0.1rem 0rem;

          > p {
            font-size: 0.24rem;
            font-weight: bold;
            display: inline-block;
            width: 0.5rem;
            height: 0.5rem;
            background: #0c2469;
            text-align: center;
            line-height: 0.5rem;
            color: white;
            border-radius: 50%;
            margin-right: 0.3rem;
          }

          div {
            //font-weight: bold;
            max-width: 4.2rem;

            p:nth-of-type(1) {
              font-size: 0.24rem;
              color: #333;
              margin-bottom: 0.2rem;
            }

            p:nth-of-type(2) {
              font-size: 0.3rem;
            }
          }
        }

        .dzb {
          text-align: center;
          border-left: 0.01rem solid #ededed;
          padding-left: 0.3rem;

          img {
            width: 0.39rem;
            height: 0.42rem;
            padding-top: 0.2rem;
          }

          p {
            font-size: 0.2rem;
          }
        }
      }
    }
  }

  .choose {
    font-size: 0.3rem;
    color: #999999;
    font-weight: bold;
    padding: 0rem 0.33rem;

    > div {
      background: white;

      padding: 0.3rem 0.3rem;
      border-radius: 0.05rem;

      .type_wp {
        display: flex;
        justify-content: center;

        div {
          flex: 1;
          text-align: center;

          p:nth-of-type(2) {
            color: #333;
            margin-top: 0.2rem;
            font-size: 0.36rem;
            //position: relative;
          }
        }

        div:nth-of-type(1) {
          border-right: 0.01rem solid #ededed;

          p:nth-of-type(2):after {
            content: "";
            display: inline-block;
            width: 0.15rem;
            height: 0.15rem;
            border-bottom: 0.01rem solid #999;
            border-right: 0.01rem solid #999;
            transform: rotate(45deg);
            margin-left: 0.15rem;
            position: relative;
            top: -0.08rem;
          }
        }
      }

      .type_price {
        display: flex;
        justify-content: center;
        border-top: 0.01rem solid #ededed;
        margin-top: 0.3rem;
        padding-top: 0.3rem;

        div {
          flex: 1;
          text-align: center;

          p:nth-of-type(2) {
            color: #333;
            margin-top: 0.2rem;
            font-size: 0.36rem;
          }
        }

        div:nth-of-type(1) {
          border-right: 0.01rem solid #ededed;

          p:nth-of-type(2):after {
            content: "";
            display: inline-block;
            width: 0.15rem;
            height: 0.15rem;
            border-bottom: 0.01rem solid #999;
            border-right: 0.01rem solid #999;
            transform: rotate(45deg);
            margin-left: 0.15rem;
            position: relative;
            top: -0.08rem;
          }
        }
      }
    }
  }

  .bz {
    padding: 0.33rem;
    font-size: 0.3rem;

    /deep/.van-field__value {
      input {
        text-align: right;
      }
    }
  }

  .check {
    font-size: 0.24rem;

    text-align: center;

    /deep/.van-checkbox {
      justify-content: center;

      .van-checkbox__label {
        color: #999;
      }
    }
  }

  .btn-jj {
    padding: 0.33rem;

    button {
      width: 100%;
    }
  }
}

.whrite_add {
  width: 6.6rem;
  padding: 0.4rem 0.2rem;

  /deep/.van-field__value {
    input {
      text-align: right;
    }
  }

  /deep/.van-popup__close-icon--top-right {
    top: 5px;
    right: 10px;
  }
}
</style>
