<template>
<div>
  <div style="display: flex;margin-bottom: 20px;">
    <a-input-search v-model:value="value" placeholder="请输入订单号" style="width: 200px" @search="onSearch" />
  </div>

  <a-table :columns="columns" :data-source="list" @change="tableChange" :pagination="pagination" :scroll="{ y:  'calc(100vh - 300px)' }">
    <template #bodyCell="{ column, record }">
      <template v-if="column.key === 'nickname'">
        <div v-if="record.nickname">
          <div>{{ record.nickname }}</div>
        </div>
        <div v-else>
          ~
        </div>
      </template>
      <template v-if="column.key === 'creator'">
        <div v-if="record.creator">
          <div>{{ record.creator }}</div>
        </div>
        <div v-else>
          ~
        </div>
      </template>
      <template v-if="column.key === 'headimgurl'">
        <div v-if="record.headimgurl">
          <a-image :width="50" :src="record.headimgurl" />
        </div>
        <div v-else>
          ~
        </div>
      </template>
    </template>
  </a-table>
  </div>
</template>
<script lang="ts" setup>
import { onMounted, ref, defineExpose } from 'vue';
import { onFindPayInfo, onFindPayOrderid } from '@/api/index'
import { getUid } from '@/utils/userInfo'
const columns = [
  {
    title: '商品名',
    dataIndex: 'subject',
    key: 'subject',
  },

  {
    title: '订单号',
    dataIndex: 'id',
    key: 'id',
  },
  {
    title: '昵称',
    dataIndex: 'nickname',
    key: 'nickname',
  },
  {
    title: '手机号',
    dataIndex: 'creator',
    key: 'creator',
  },
  {
    title: '头像',
    dataIndex: 'headimgurl',
    key: 'headimgurl',
  },
  {
    title: '订单时间',
    dataIndex: 'updatetime',
    key: 'updatetime',
  },
];
let list = ref<any>([])
let value = ref<any>('')
const pagination = ref({
  current_page: 1,
  total: 0,
  defaultPageSize: 10,
  showSizeChanger: true,
  pageSizeOptions: ['5', '10', '15', '20'],
})
const onSearch = async () => {
  // value.value  = '' 搜索会报错
  if (value.value !== '') {
    const uid = getUid()
    const prarms: any = {
      page: pagination.value.current_page,
      size: pagination.value.defaultPageSize,
      uid
    }
    const data: any = await onFindPayInfo(prarms)
    if (data.state === 1) {
      list.value = data.data.payorder
      pagination.value.total = data.data.count

    }
  } else {
    const uid = getUid()
    const prarms: any = {
      page: pagination.value.current_page,
      size: pagination.value.defaultPageSize,
      uid
    }
    const data: any = await onFindPayInfo(prarms)
    if (data.state === 1) {
      list.value = data.data.payorder
      pagination.value.total = data.data.count

    }
  }
}
const tableChange = async (e:any) => {
  const uid = getUid()
  const prarms: any = {
    page: e.current,
    size: e.pageSize,
    uid
  }
  const data: any = await onFindPayInfo(prarms)
  if (data.state === 1) {
    list.value = data.data.payorder
    pagination.value.total = data.data.count
  }
}
onMounted(async () => {
  onSearch()
})
defineExpose({
  columns,
  pagination,
  tableChange
})
</script>