<template>
  <div class="outer-layer chat-settings-page">
    <div class="root">
      <ZPaging ref="zPaging" :show-scrollbar="false">
        <template #top>
          <tm-navbar :hideBack="false" hideHome title="" :leftWidth="220">
            <div class="navBar-title flex flex-col items-center justify-center">
              <span class="text-[34rpx] font-medium">
                {{ $t('index.chat.settings') }}
              </span>
            </div>
          </tm-navbar>
        </template>
        <div class="chat-settings">
          <div class="chat-group-base-infos chat-settings-card">
            <div class="base-info-avatar">
              <img :src="groupAvatar" />
            </div>
            <div class="base-info">
              <div class="base-info-name">
                <span class="text-[32rpx] font-medium">{{ groupName }}</span>
                <span class="base-info_num text-[32rpx] font-medium">
                  {{ '(' + groupNum + ')' }}
                </span>
              </div>
              <div class="base-info-tag">
                <span class="text-[24rpx] font-medium">{{ groupType }}</span>
              </div>
            </div>
            <div class="base-info-edit">
              <img src="/src/static/image/chatSettings/edit-btn.png" />
            </div>
          </div>
          <div class="chat-group-members chat-group-infos chat-settings-card">
            <div
              class="chat-group-infos-each"
              v-for="(item, index) in state.chatGroupMembers"
              :key="index"
            >
              <settingFormItem :item="item"></settingFormItem>
              <div class="group-member-list">
                <div
                  class="group-member-list-each"
                  v-for="(memberItem, memberIndex) in item?.memberList"
                >
                  <div class="group-member-each" v-if="memberIndex < 15">
                    <div class="group-member-avatar">
                      <img />
                      <span class="text-[24rpx] font-bold">
                        {{ memberItem.avatar }}
                      </span>
                    </div>
                    <div class="group-member-tag" v-if="memberIndex < 3">
                      <span class="text-[16rpx] font-regular">
                        {{ $t('group.identify.admin') }}
                      </span>
                    </div>
                    <div class="group-member-name">
                      <span class="text-[24rpx] font-regular">
                        {{ memberItem.name }}
                      </span>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
          <div class="chat-group-infos chat-settings-card">
            <div
              class="chat-group-infos-each"
              v-for="(item, index) in state.chatGroupInfos"
              :key="index"
            >
              <settingFormItem :item="item"></settingFormItem>
            </div>
          </div>
          <div class="chat-records-search chat-settings-card">
            <tm-input
              class="searchRoot_input"
              :placeholder="$t('search.chat.record')"
              color="#F9F9FD"
              :round="1"
              prefix="tmicon-search"
              prefixColor="#46299D"
            ></tm-input>
            <div class="record-search-types">
              <div
                class="record-search-types-each"
                v-for="(item, index) in state.recordSearchTypeList"
                :key="index"
              >
                <img class="record-search-types-icon" :src="item.typeIcon" />
                <span class="text-[24rpx] font-regular">{{ item.value }}</span>
              </div>
            </div>
          </div>
          <div class="chat-group-infos chat-settings-card">
            <div
              class="chat-group-infos-each"
              v-for="(item, index) in state.chatSettings"
              :key="index"
            >
              <settingFormItem :item="item"></settingFormItem>
            </div>
          </div>
          <div class="chat-group-infos chat-settings-card">
            <div
              class="chat-group-infos-each"
              v-for="(item, index) in state.chatManagement"
              :key="index"
            >
              <settingFormItem :item="item"></settingFormItem>
            </div>
          </div>
          <div class="clear-chat-record-btn chat-settings-card">
            <div class="clear-chat-record-btn-each">
              <span class="text-[32rpx] font-regular">
                {{ $t('chat.settings.clearChatRecord') }}
              </span>
            </div>
            <div class="clear-chat-record-btn-each">
              <span class="text-[32rpx] font-regular">
                {{ $t('group.disband.btn') }}
              </span>
            </div>
            <div class="clear-chat-record-btn-each">
              <span class="text-[32rpx] font-regular">
                {{ $t('group.quit.btn') }}
              </span>
            </div>
          </div>
        </div>
      </ZPaging>
    </div>
  </div>
</template>
<script setup>
import recordSearchTypeIcon_groupMember from '@/static/image/chatSettings/recordSearchTypeGroupMembers.png'
import recordSearchTypeIcon_date from '@/static/image/chatSettings/recordSearchTypeDate.png'
import recordSearchTypeIcon_imgAndVideo from '@/static/image/chatSettings/recordSearchTypeImgAndVideo.png'
import recordSearchTypeIcon_files from '@/static/image/chatSettings/recordSearchTypeFiles.png'
import recordSearchTypeIcon_link from '@/static/image/chatSettings/recordSearchTypeLink.png'
import ZPaging from '@/uni_modules/z-paging/components/z-paging/z-paging.vue'
import settingFormItem from './components/settingFormItem.vue'
import { computed, onMounted, reactive } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import { ServeQueryGroupInfo } from '@/api/chatSettings/index'
import { useI18n } from 'vue-i18n'
const { t } = useI18n()

onLoad((options) => {
  if (options.groupId) {
    console.log(options.groupId)
    state.groupId = Number(options.groupId)
    getGroupInfo()
  }
})

const state = reactive({
  chatGroupMembers: [], //群成员
  chatGroupInfos: [], //群聊信息
  recordSearchTypeList: [], //聊天记录搜索类型
  chatSettings: [], //群聊设置
  chatManagement: [], //群聊管理
  groupId: '', //群id
  groupInfo: null, //群信息
})

onMounted(() => {
  let memberList = []
  for (let i = 0; i < 18; i++) {
    memberList.push({
      name: '姜雪辞',
      avatar: '雪辞',
    })
  }
  state.chatGroupMembers = [
    {
      label: t('chat.settings.groupMember'),
      hasPointer: true,
      value: '全部(' + groupNum.value + ')',
      subValue: '',
      customInfo: '',
      memberList: memberList,
    },
  ]
  state.chatGroupInfos = [
    {
      label: t('chat.settings.groupName'),
      hasPointer: true,
      value: groupName,
      subValue: '',
      customInfo: '',
    },
    {
      label: t('chat.settings.groupNotice'),
      hasPointer: true,
      value: '',
      subValue: '数字科技中心啊撒salads阿萨达撒的啊撒…',
      customInfo: '',
    },
    {
      label: t('chat.settings.groupType'),
      hasPointer: false,
      value: '公司群',
      subValue: '',
      customInfo: '',
    },
  ]
  state.recordSearchTypeList = [
    {
      value: t('chat.settings.groupMember'),
      typeIcon: recordSearchTypeIcon_groupMember,
    },
    {
      value: t('record.searchType.date'),
      typeIcon: recordSearchTypeIcon_date,
    },
    {
      value: t('record.searchType.imgAndVideo'),
      typeIcon: recordSearchTypeIcon_imgAndVideo,
    },
    {
      value: t('record.searchType.files'),
      typeIcon: recordSearchTypeIcon_files,
    },
    {
      value: t('record.searchType.link'),
      typeIcon: recordSearchTypeIcon_link,
    },
  ]
  state.chatSettings = [
    {
      label: t('chat.settings.topSession'),
      hasPointer: false,
      value: '',
      subValue: '',
      customInfo: 'switch',
    },
    {
      label: t('chat.settings.messageNoDisturb'),
      hasPointer: false,
      value: '',
      subValue: '',
      customInfo: 'switch',
    },
  ]
  state.chatManagement = [
    {
      label: t('chat.settings.groupGag'),
      hasPointer: true,
      value: '',
      subValue: '',
      customInfo: '',
    },
    {
      label: t('chat.settings.groupAdmin'),
      hasPointer: true,
      value: '',
      subValue: '总经理室-总经理,苏州站-出纳,常熟站…',
      customInfo: '',
    },
  ]
})

//群头像
const groupAvatar = computed(() => {
  return ''
})

//群名称
const groupName = computed(() => {
  return state?.groupInfo?.group_name
})

//群人数
const groupNum = computed(() => {
  return 600
})

//群类型
const groupType = computed(() => {
  return '公司'
})

//查询群信息
const getGroupInfo = () => {
  let params = {
    group_id: state.groupId,
  }
  const resp = ServeQueryGroupInfo(params)
  console.log(resp)
  resp.then(({ code, data }) => {
    console.log(data)
    if (code == 200) {
      state.groupInfo = data
    } else {
    }
  })

  resp.catch(() => {})
}
</script>
<style scoped lang="scss">
.outer-layer {
  flex: 1;
  background-image: url('@/static/image/clockIn/z3280@3x.png');
  background-size: cover;
  background-repeat: no-repeat;
}

.chat-settings-page {
  .navBar-title {
    span {
      line-height: 48rpx;
    }
  }

  .chat-settings {
    padding: 0 32rpx 36rpx;
    width: 100%;

    .chat-settings-card {
      width: 100%;
      background-color: #fff;
      margin: 20rpx 0 0;
      border-radius: 8rpx;
      box-shadow: 0 6px 12px 2px rgba(188, 188, 188, 0.08);
    }

    .chat-group-base-infos {
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      padding: 32rpx 40rpx 32rpx 20rpx;

      .base-info-avatar {
        width: 96rpx;
        height: 96rpx;
        flex-shrink: 0;
        border-radius: 50%;
        overflow: hidden;

        img {
          width: 100%;
          height: 100%;
        }
      }
      .base-info {
        width: 100%;
        margin: 0 30rpx;
        .base-info-name {
          display: flex;
          flex-direction: row;
          align-items: center;
          justify-content: flex-start;
          span {
            line-height: 44rpx;
            color: $theme-text;
          }
          .base-info_num {
            line-height: 44rpx;
          }
        }
        .base-info-tag {
          border: 2rpx solid #7a58de;
          display: flex;
          flex-direction: row;
          align-items: center;
          justify-content: center;
          padding: 2rpx 14rpx;
          margin: 10rpx 0 0;
          border-radius: 8rpx;
          width: 80rpx;
          span {
            flex-shrink: 0;
            color: #7a58de;
            line-height: 34rpx;
          }
        }
      }
      .base-info-edit {
        width: 36rpx;
        height: 36rpx;
        flex-shrink: 0;
        img {
          width: 100%;
          height: 100%;
        }
      }
    }

    .chat-group-members {
      .group-member-list {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        flex-wrap: wrap;
        .group-member-list-each {
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: center;
          width: calc(100% / 5);
          .group-member-each {
            margin: 32rpx 0 0;
            position: relative;
            .group-member-avatar {
              width: 72rpx;
              height: 72rpx;
              border-radius: 50%;
              background: linear-gradient(to right, #674bbc, #46299d);
              display: flex;
              flex-direction: row;
              align-items: center;
              justify-content: center;
              img {
              }
              span {
                line-height: 34rpx;
                color: #fff;
              }
            }
            .group-member-tag {
              position: absolute;
              top: 58rpx;
              left: 0;
              display: flex;
              flex-direction: row;
              align-items: center;
              justify-content: center;
              background-color: #cf3050;
              border-radius: 16rpx;
              padding: 0 12rpx;
              span {
                line-height: 22rpx;
                color: #fff;
              }
            }
            .group-member-name {
              display: flex;
              flex-direction: row;
              align-items: center;
              justify-content: center;
              margin: 8rpx 0 0;
              span {
                line-height: 34rpx;
                color: #919191;
              }
            }
          }
        }
      }
    }

    .chat-group-infos {
      padding: 0 16rpx;
      .chat-group-infos-each {
        padding: 32rpx 14rpx;
        border-bottom: 1px solid $theme-border-color;
      }
      .chat-group-infos-each:last-child {
        border-bottom: 0;
      }
    }

    .chat-records-search {
      padding: 22rpx 16rpx;

      .record-search-types {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        flex-wrap: wrap;
        .record-search-types-each {
          width: calc(100% / 4);
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: center;
          margin: 36rpx 0 0;
          .record-search-types-icon {
            width: 106rpx;
            height: 106rpx;
            border-radius: 50%;
            background-color: #f9f9f9;
          }
          span {
            line-height: 34px;
            color: #666666;
          }
        }
      }
    }

    .clear-chat-record-btn {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      .clear-chat-record-btn-each {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        padding: 32rpx 16rpx;
        width: calc(100% - 32rpx);
        border-bottom: 1px solid $theme-border-color;

        span {
          line-height: 44rpx;
          color: #cf3050;
        }
      }
      .clear-chat-record-btn-each:last-child {
        border-bottom: 0;
      }
    }
  }
}
</style>