<template>
  <div class="AddGird">
    <AiGroup>
      <AiItem label="网格名称" required>
        <u-input type="text" placeholder="请输入" input-align="right" placeholder-style="color:#999;font-size:16px;" height="48" v-model="form.girdName"
                 maxlength="50"/>
      </AiItem>
    </AiGroup>
    <AiGroup>
      <AiItem label="网格长" topLabel>
        <AiPagePicker type="sysUser" :selected.sync="form.girdMemberManageList" action="/app/wxcp/wxuser/list?status=1" nodeKey="id">
          <AiMore :value="getArrayLabel(form.girdMemberManageList)"/>
        </AiPagePicker>
      </AiItem>
    </AiGroup>
    <AiGroup>
      <AiItem label="网格员" topLabel>
        <AiPagePicker type="sysUser" :selected.sync="form.girdMemberList" action="/app/wxcp/wxuser/list?status=1" nodeKey="id">
          <AiMore :value="getArrayLabel(form.girdMemberList)"/>
        </AiPagePicker>
      </AiItem>
    </AiGroup>
    <div class="footer" @click="confirm">{{ fromType == 'add' ? '确认添加' : '确认修改' }}</div>
  </div>
</template>

<script>

export default {
  data() {
    return {
      id: '',
      form: {
        girdMemberManageList: [],
        girdMemberList: []
      },
      detailInfo: {},
      fromType: 'add', //add新增 edit编辑,
    }
  },
  onLoad(option) {
    this.id = option.id
    this.fromType = option.fromType
    this.getDetail()
  },
  onShow() {
    if (this.fromType == 'add') {
      document.title = '添加网格'
    } else {
      document.title = '编辑网格'
    }
  },
  methods: {
    getDetail() {
      this.$http.post(`/app/appgirdinfo/queryDetailById?id=${this.id}`).then((res) => {
        if (res?.data) {
          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.$forceUpdate()
          }
        }
      })
    },
    confirm() {
      if (!this.form.girdName) {
        return this.$u.toast('请输入网格名称')
      }
      let girdMemberManageList = this.form.girdMemberManageList?.map((item) => {
        return {
          wxUserId: item.id,
          phone: item.mobile,
          photo: item.avatar,
          name: item.name
        }
      })
      let girdMemberList = this.form.girdMemberList?.map((item) => {
        return {
          wxUserId: item.id,
          phone: item.mobile,
          photo: item.avatar,
          name: item.name
        }
      })
      uni.showLoading({mask: true})
      this.$http.post(`/app/appgirdinfo/addOrUpdateByEw`, {...this.form, girdMemberManageList, girdMemberList}).then((res) => {
        if (res?.code == 0) {
          this.$u.toast('提交成功')
          uni.$emit('update')
          setTimeout(() => {
            uni.navigateBack({})
          }, 600)
        }
      }).catch((err) => {
        this.$u.toast(err)
      }).finally(() => uni.hideLoading())

    },
    getArrayLabel(arr, key = 'name', separation = '，') {
      return arr?.map(e => e[key])?.join(separation)
    }
  }
}
</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>
