<template>
  <div class="AddGird">
    <div class="item-flex">
      <div class="label">
        <span class="tips"></span>网格类型
      </div>
      <div class="value">{{ $dict.getLabel('girdType', form.girdType) }}</div>
    </div>
    <div class="item-flex">
      <div class="label">
        <span class="tips"></span>网格层级
      </div>
      <div class="value">{{ $dict.getLabel('girdLevel', form.girdLevel) }}</div>
    </div>

    <div class="item-flex">
      <div class="label">
        <span class="tips">*</span>网格名称
      </div>
      <div class="value">
        <u-input type="text" placeholder="请输入" input-align="right" placeholder-style="color:#999;font-size:16px;"
                 height="48" v-model="form.girdName" maxlength="50"/>
      </div>
    </div>
    <div class="item-flex">
      <div class="label">
        <span class="tips"></span>网格长
      </div>
      <div class="value" @click="toAddUser('manage')">

        <span v-if="form.girdMemberManageList && form.girdMemberManageList.length">
          <!-- <span v-for="(item, index) in form.girdMemberManageList" :key="index"><span v-if="index>0">,</span>{{item.name}}</span> -->
          已选择<span style="color:#3F8DF5;margin:0 4px;">{{ form.girdMemberManageList.length }}</span>人
        </span>
        <span style="color:#999;" v-else>请选择</span>
        <img src="./components/img/right-icon.png" alt=""/></div>
    </div>
    <div class="item-flex" v-if="form.girdLevel == 2">
      <div class="label">
        <span class="tips"></span>网格员
      </div>
      <div class="value" @click="toAddUser('member')">
        <span v-if="form.girdMemberList && form.girdMemberList.length">
          已选择<span style="color:#3F8DF5;margin:0 4px;">{{ form.girdMemberList.length }}</span>人
          <!-- <span v-for="(item, index) in form.girdMemberList" :key="index"><span v-if="index>0">,</span>{{item.name}}</span> -->
        </span>
        <span style="color:#999;" v-else>请选择</span>
        <img src="./components/img/right-icon.png" alt=""/>
      </div>
    </div>
    <div class="footer" @click="confirm">确认添加</div>
  </div>
</template>

<script>
import {mapActions} from "vuex";

export default {
  data() {
    return {
      id: '',
      form: {
        girdMemberManageList: [],
        girdMemberList: []
      },
      detailInfo: {},
      fromType: 'add', //add新增 edit编辑,
    }
  },
  onLoad(option) {
    this.$dict.load('girdType', 'girdLevel').then(() => {
      this.id = option.id
      this.fromType = option.fromType
      this.getDetail()
    })
  },
  onShow() {
    document.title = '添加网格'
  },
  methods: {
    ...mapActions(['selectPrivilegedContact']),
    getDetail() {
      this.$http.post(`/app/appgirdinfo/queryDetailById?id=${this.id}`).then((res) => {
        if (res.code == 0) {
          this.detailInfo = res.data
          if (this.fromType == 'edit') {
            this.form = res.data
          }
          if (this.fromType == 'add') {
            this.form.parentGirdId = this.detailInfo.id
            this.form.parentGirdName = this.detailInfo.girdName
            this.form.girdLevel = Number(this.detailInfo.girdLevel) + 1
            this.form.girdType = Number(this.detailInfo.girdType) + 1
            this.form.isLastLevel = this.form.girdLevel == 2 ? '1' : '0'
            this.$forceUpdate()
          }
        }
      })
    },
    toAddUser(type) {
      let obj = type == 'manage' ? "girdMemberManageList" : "girdMemberList",
          selectedOpenUserIds = this.form?.[obj]?.map(e => e.wxUserId) || []
      selectedOpenUserIds = selectedOpenUserIds || []
      this.$loading()
      this.selectPrivilegedContact({
        fromDepartmentId: 0, selectedOpenUserIds,
        selectedTickets: this.form?.[type + "Ticket"] || [],
      }).then(res => {
        uni.hideLoading()
        this.form[obj] = res.userList?.map(e => ({id: e.openUserId})) || []
        this.form[type + "Ticket"] = res.selectedTicket
      }).catch(() => {
        uni.hideLoading()
      })
    },
    confirm() {
      if (!this.form.girdName) {
        return this.$u.toast('请输入网格名称')
      }
      this.$http.post(`/app/appgirdinfo/addOrUpdateByEw`, {...this.form}).then((res) => {
        if (res.code == 0) {
          this.$u.toast('提交成功')
          uni.$emit('update')
          setTimeout(() => {
            uni.navigateBack({})
          }, 600)
        }
      }).catch((err) => {
        this.$u.toast(err)
      })

    }
  }
}
</script>

<style lang="scss" scoped>
.AddGird {
  .item-flex {
    display: flex;
    padding: 34px 32px;
    background-color: #fff;
    font-size: 32px;
    font-family: PingFangSC-Regular, PingFang SC;
    margin-bottom: 16px;

    .label {
      font-weight: 400;
      color: #333333;
      line-height: 22px;
      width: 150px;

      .tips {
        display: inline-block;
        width: 16px;
        color: #F46;
        line-height: 44px;
      }
    }

    .value {
      width: calc(100% - 150px);
      line-height: 44px;
      text-align: right;
      color: #666;

      img {
        width: 44px;
        height: 44px;
        vertical-align: middle;
      }
    }

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

  .footer {
    width: 100%;
    height: 112px;
    line-height: 112px;
    background: #1365DD;
    position: fixed;
    bottom: 0;
    left: 0;
    text-align: center;
    font-size: 36px;
    font-family: PingFangSC-Medium, PingFang SC;
    font-weight: 500;
    color: #FFF;
  }
}
</style>
