<template>
    <div class="test_cli admin_page">
		<div class="admin_table_search">
			<div class="admin_state">
			
				<div class="admin_state_item">
					<span>Start Date:</span>
					<a-range-picker
						style="width:250px"
						class="range_picker"
						v-model:value="rangePickerValue"
						:placeholder="[
							$t('HistoryPage.StartDate'),
							$t('HistoryPage.EndDate'),
						]"
						valueFormat="YYYY-MM-DD"
					>
						<template #suffixIcon>
							<span
								class="icon iconfont range_picker_icon icon-rili"
							></span>
						</template>
					</a-range-picker>
				</div>
				<div class="admin_state_item">
					<span>Start Time:</span>
						<a-time-range-picker style="width:250px" class="range_picker" valueFormat="HH:mm:ss" v-model:value="rangeTimeValue" />
				</div>
				<div class="admin_state_item">
                    <span>Email:</span>
                    <input
                        v-model="email"
                        placeholder="Please enter email"
                        @keydown.enter="gettrialList"
                        type="text"
                        style="width: 250px"
                    />
                </div>
				<div class="admin_state_item">
                    <span>User Name:</span>
                    <a-select
                        v-model:value="ids"
                        mode="multiple"
                        style="width: 250px"
                        :filter-option="filterOption"
                        placeholder="Select Item..."
                        max-tag-count="responsive"
                        :options="allUserList"
                        @keydown.enter="gettrialList"
                    ></a-select>
                </div>
			</div>
			<div class="admin_search">
				<div class="admin_search_item" @click="searchHistoryList">Search</div>
			</div>
		</div>

		<div class="admin_table_content" ref="historyTable">
			<a-table
				@resizeColumn="handleResizeColumn"
				:columns="columns"
				:data-source="dataList"
				:scroll="{ y: historyTableHeight }"
				@change="changePage"
				:pagination="{
					showSizeChanger: true,
					current: currentPage,
					pageSize: pageSize,
					total: total,
					showQuickJumper: true,
					bordered: false,
				}"
			>
			</a-table>
		</div>
    </div>
</template>
<script lang="ts">
import { defineComponent, ref, createVNode, computed } from "vue";
import { useStore } from "vuex";
import { Https } from "@/tool/https";
export default defineComponent({
    components: {
    },
    setup() {
        const store:any = useStore()
        let rangePickerValue: any = ref([]);
        let rangeTimeValue: any = ref([]);
        let renameData: any = ref({}); //修改名字选中的数据
        const columns: any = computed(() => {
            return [
                {
                    title: 'Email',
                    align: "center",
                    dataIndex: "userEmail",
                    key: "userEmail",
					width:200,
                    fixed: "left",
                },
				{
                    title: 'User Id',
                    align: "center",
                    ellipsis: true,
                    dataIndex: "accountId",
                    key: "accountId",
					width:100,
                },
                {
                    title: 'User Name',
                    align: "center",
                    ellipsis: 200,
                    dataIndex: "userName",
                    key: "userName",
					width:100,
                    // customRender: (record: any) => {
                    //     let time = formatTime(
                    //         record.text / 1000,
                    //         "YYYY-MM-DD hh:mm:ss"
                    //     );
                    //     return time;
                    // },
                },
				{
                    title: 'isTrial',
                    align: "center",
                    ellipsis: true,
                    dataIndex: "isTrial",
                    key: "isTrial",
					width:100,
					   customRender: (record: any) => {
                        let str
						if(record.value == 1){
							str ='Yes'
						}else{
							str ='No'
						}
                        return str;
                    },
                },
                {
                    title: 'Frequency',
                    align: "center",
                    ellipsis: true,
                    dataIndex: "designTimes",
                    key: "designTimes",
					width:100,
                },
				{
                    title: 'Country',
                    align: "center",
                    ellipsis: true,
                    dataIndex: "country",
                    key: "country",
					width:200,
                },
				{
                    title: 'Title',
                    align: "center",
                    ellipsis: true,
                    dataIndex: "title",
                    key: "title",
					width:100,
                },
				{
                    title: 'Surname',
                    align: "center",
                    ellipsis: true,
                    dataIndex: "surname",
                    key: "surname",
					width:150,
                },
				{
                    title: 'Given Name',
                    align: "center",
                    ellipsis: true,
                    dataIndex: "givenName",
                    key: "givenName",
					width:100,
                },
				{
                    title: 'Create Time',
                    align: "center",
                    ellipsis: true,
					// width: 150,
					// minWidth: 100,
        			// maxWidth: 200,
					// resizable: true,
                    dataIndex: "createTime",
                    key: "createTime",
					width:200,
                },
				{
                    title: 'Credits',
                    align: "center",
                    ellipsis: true,
					// width: 150,
					// minWidth: 100,
        			// maxWidth: 200,
					// resizable: true,
                    dataIndex: "credits",
                    key: "credits",
					width:100,
                },
				{
                    title: 'Occupation',
                    align: "center",
                    ellipsis: true,
					// width: 150,
					// minWidth: 100,
        			// maxWidth: 200,
					// resizable: true,
                    dataIndex: "occupation",
                    key: "occupation",
					width:100,
                },
				{
                    title: 'Trial Order Id',
                    align: "center",
                    ellipsis: true,
					// width: 150,
					// resizable: true,
                    dataIndex: "trialOrderId",
                    key: "trialOrderId",
					width:100,
                },
            ];
        });

        let allUserList: any = computed(()=>{
				return store.state.adminPage.allUserList
			})
		let ids = ref([])
		let email = ref('')
        let dataList: any = ref([]);
        let status: any = ref(0);
		let filterOption = (input: any, option: any) => {
            // 使用 option.label 进行搜索
            return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
        };
        return {
            rangePickerValue,
			rangeTimeValue,
            columns,
            dataList,
			allUserList,
			ids,
			email,
            renameData,
            status,
			filterOption,
        };
    },
    data() {
        return {
            currentPage: 1,
            pageSize: 10,
            total: 0,
            historyTableHeight: 0,
			handleResizeColumn: (w:any, col:any) => {
				col.width = w;
			},
        };
    },
    mounted() {
        let historyTable: any = this.$refs.historyTable;
        this.historyTableHeight = historyTable.clientHeight - 200;
        this.gettrialList();
    },
    methods: {
        //改变页码
        changePage(e: any) {
            this.currentPage = e.current;
            this.pageSize = e.pageSize;
            // this.gettrialList();
        },

        //查询列表
        searchHistoryList() {
            this.currentPage = 1;
            this.gettrialList();
        },

		//获取列表
        gettrialList() {
			let startTime: any = this.rangeTimeValue[0]
                ? this.rangeTimeValue[0]
                : '00:00:00';
            let endTime: any = this.rangeTimeValue[1]
                ? this.rangeTimeValue[1]
                : '23:59:59';
			let startDate: any = this.rangePickerValue[0]
                ? this.rangePickerValue[0]+' '+startTime
                : "";
            let endDate: any = this.rangePickerValue[1]
                ? this.rangePickerValue[1]+' '+endTime
                : "";
			let ids = this.ids.join(',')
			let data = {
				endTime:endDate,
				startTime:startDate,
				ids:ids,
				email:this.email.trim(),
			}
			Https.axiosGet(Https.httpUrls.getDesignStatistic,{params:data}).then((rv: any) => {
				if (rv) {
					this.dataList = rv
					// this.workspaceItem.position = this.singleTypeList[0].label
				}
			})
        },
		
        //删除分组
        // deleteGroup(record: any, index: number) {
        //     let deleteGroupFun = (id: any, index: number) => {
        //         let data = {
        //             userGroupId: id,
        //         };
        //         Https.axiosPost(Https.httpUrls.deleteUserGroup, data).then(
        //             (rv: any) => {
        //                 this.dataList.splice(index, 1);
        //             }
        //         );
        //     };
        //     Modal.confirm({
        //         title: "",
        //         icon: createVNode(ExclamationCircleOutlined),
        //         okText: "Yes",
        //         cancelText: "No",
        //         centered: true,
        //         mask: false,
        //         onOk() {
        //             deleteGroupFun(record.id, index);
        //         },
        //     });
        // },
		
		
    },
});
</script>
<style lang="less" scoped>
.admin_page .admin_table_search .admin_state {
    display: flex;
    flex-wrap: wrap;
}
</style>