<template>
    <uni-popup ref="popup" :mask-click="false" background-color="white" borderRadius="10px" class="pop">
        <view style="height: 250px; width: 300px; padding: 15px; box-sizing: border-box; display: flex; flex-direction:column; justify-content: space-between; align-items: center;" class="popup-content">
            <input placeholder="联系人姓名" v-model="newContacts.name" style="width: 100%; padding: 5px; border: 1px solid #ccc; border-radius: 5px;" />
            <input placeholder="联系方式" v-model="newContacts.phone" style="width: 100%; padding: 5px; border: 1px solid #ccc; border-radius: 5px;" />
            <checkbox @click="handleIsDefaultChanges()" :key="newContacts.id"  style="width: auto; margin-top: 10px;">设置为默认联系人</checkbox>
            <view style="width: 100%; display: flex; justify-content: space-between;">
                <button @click="addContact" style="flex: 1; padding: 8px 0; background-color: #007aff; color: white; border: none; border-radius: 5px; margin-right: 5px;">添加</button>
                <button @click="close" style="flex: 1; padding: 8px 0; background-color: #ccc; color: #333; border: none; border-radius: 5px; margin-left: 5px;">取消</button>
            </view>
        </view>
    </uni-popup>
    <uni-popup ref="popup1" :mask-click="false" background-color="white" borderRadius="10px" class="pop">
        <view style="height: 250px; width: 300px; padding: 15px; box-sizing: border-box; display: flex; flex-direction:column; justify-content: space-between; align-items: center;" class="popup-content">
            <input placeholder="联系人姓名" v-model="newContact.name" style="width: 100%; padding: 5px; border: 1px solid #ccc; border-radius: 5px;" />
            <input placeholder="联系方式" v-model="newContact.phone" style="width: 100%; padding: 5px; border: 1px solid #ccc; border-radius: 5px;" />
            <checkbox @click="handleIsDefaultChanges()" :key="newContacts.id" :checked="newContact.isDefault === 1" style="width: auto; margin-top: 10px;">设置为默认联系人</checkbox>
            <view style="width: 100%; display: flex; justify-content: space-between;">
                <button @click="saveModifiedContact" style="flex: 1; padding: 8px 0; background-color: #007aff; color: white; border: none; border-radius: 5px; margin-right: 5px;">保存</button>
                <button @click="close1" style="flex: 1; padding: 8px 0; background-color: #ccc; color: #333; border: none; border-radius: 5px; margin-left: 5px;">取消</button>
            </view>
        </view>
    </uni-popup>
    <view class="flex-col page">
        <view class="flex-col">
            <view class="flex-row justify-center items-center relative group">
                <text class="text">联系人信息</text>
                <image class="image pos"
                    src="https://ide.code.fun/api/image?token=673329a3c471750012deb1ec&name=888e11f2c452b3d64f79a5136a779376.png" />
            </view>
            <view class="mt-16 flex-col">
                <view class="flex-row justify-between items-center list-item mt-5"
                    v-for="(item, index) in filteredContacts" :key="index">
                    <view class="flex-row items-center">
                        <text class="font ml-9">{{item.name}}</text>
                        <text class="font_2 ml-9">{{item.phone}}</text>
                    </view>
                    <text v-if="item.isDefault === 1" class="font_3 ml-12">默认联系人</text>
                    <view class="flex-row group_2">
                        <image class="image_2"
                            src="https://carbon2.obs.cn-north-4.myhuaweicloud.com:443/feiyi%2Ftest%2F0%2FEclWfXMx-bj.png"
                            @click="editContact(index)" />
                        <image class="ml-12 image_2"
                            src="https://carbon2.obs.cn-north-4.myhuaweicloud.com:443/feiyi%2Ftest%2F0%2FzgFMedLP-sc.png"
                            @click="deleteContact(index)" />
                    </view>
                </view>
            </view>
        </view>
        <view class="flex-col justify-start items-center section mt-431" @click="open">
            <view class="flex-col justify-start items-center text-wrapper"><text class="text_2">添加新联系人</text></view>
        </view>
    </view>
</template>

<script setup>
import { ref, onMounted, watch } from 'vue'
import { baseUrl } from '../../../api/request'

onMounted(() => {
    getContacts()
})

const newContact = ref({
    name: '',
    phone: '',
    isDefault: 0,
    id: 0
})
const newContacts = ref({
    name: '',
    phone: '',
    isDefault: 0,
    id: 0
})

const editContact = async (index) => {
    popup1.value.open('center');
    const contact = filteredContacts.value[index];
    newContact.value = {
        name: contact.name,
        id: contact.id,
        phone: contact.phone,
        isDefault: contact.isDefault
    };
}

const handleIsDefaultChanges = (e) => {
    let currentValue = newContact.value.isDefault;
    let updatedValue = currentValue === 0? 1 : 0;
    newContact.value.isDefault = updatedValue;
    console.log(updatedValue);
}
const handleIsDefaultChange = (e) => {
    //console.log(newContact.value.isDefault)
    let currentValue = newContact.value.isDefault;
    let updatedValue = currentValue === 0? 1 : 0;
    newContact.value.isDefault = updatedValue;
    console.log(updatedValue);
}

// 获取联系人列表
const getContacts = async () => {
    const res = await uni.request({
        url: baseUrl + '/contacts/list',
        method: 'POST',
        header: {
            cookie: wx.getStorageSync('cookie')
        }
    });
    // console.log(res)
    if (res.data.code === 1) {
        const correctContacts = [];
        let defaultContact = null;
        res.data.data.forEach((contact) => {
            if (contact.isDefault === 1) {
                if (!defaultContact) {
                    defaultContact = contact;
                } else {
                    contact.isDefault = 0;
                }
            }
            correctContacts.push(contact);
        });
        filteredContacts.value = correctContacts;
        if (defaultContact) {
            const index = filteredContacts.value.findIndex(
                c => c.id === defaultContact.id
            );
            if (index!== -1) {
                filteredContacts.value[index].isDefault = 1;
            }
        }
    } else {
        uni.showToast({
            icon: 'error',
            title: '获取失败'
        });
    }
}

const searchText = ref('');
const filteredContacts = ref([]);

watch(searchText, () => {
    if (searchText.value === '') {
        filteredContacts.value = contacts.value;
    } else {
        filteredContacts.value = contacts.value.filter(contact => {
            return contact.name.includes(searchText.value) || contact.phone.includes(
                searchText.value)
        });
    }
});

// 添加联系人
const addContact = async () => {
    popup.value.close();
    // 清除之前默认联系人
    if (newContacts.value.isDefault) {
        for (let i = 0; i < filteredContacts.value.length; i++) {
            if (filteredContacts.value[i].isDefault === 1) {
                filteredContacts.value[i].isDefault = 0;
            }
        }
    }
    const res = await uni.request({
        url: baseUrl + '/contacts/add',
        method: 'POST',
        header: {
            cookie: wx.getStorageSync('cookie')
        },
        data: {
            name: newContacts.value.name,
            phone: newContacts.value.phone,
            isDefault: newContacts.value.isDefault
        }
    });
    if (res.data.code === 1) {
        console.log('添加成功');
        newContacts.value = {
            name: '',
            phone: '',
            isDefault: 0,
            id: 0
        };
    } else {
        uni.showToast({
            icon: 'error',
            title: '添加失败'
        });
    }
    getContacts();
}

// 删除联系人
const deleteContact = async (index) => {
    const res = await uni.request({
        url: baseUrl + '/contacts/delete',
        method: 'POST',
        header: {
            cookie: wx.getStorageSync('cookie')
        },
        data: {
            id: filteredContacts.value[index].id,
        }
    });
    console.log(res, '1111111111111');
    if (res.data.code === 1) {
        console.log('删除成功');
    } else {
        uni.showToast({
            icon: 'error',
            title: '删除失败'
        });
    }
    getContacts();
}

const contactToModify = ref({});
const indexToModify = ref(null);

// 更新联系人
const saveModifiedContact = async () => {
    popup1.value.close();
    if (!newContact.value.name ||!newContact.value.phone) {
        uni.showToast({
            icon: 'error',
            title: '不能为空'
        });
        return;
    }
    if (newContact.value.isDefault) {
        for (let i = 0; i < filteredContacts.value.length; i++) {
            if (filteredContacts.value[i].isDefault === 1) {
                filteredContacts.value[i].isDefault = 0;
            }
        }
    }
    const res = await uni.request({
        url: baseUrl + '/contacts/update',
        method: 'POST',
        header: {
            cookie: wx.getStorageSync('cookie')
        },
        data: {
            name: newContact.value.name,
            phone: newContact.value.phone,
            id: newContact.value.id,
            isDefault: newContact.value.isDefault
        }
    });
    if (res.data.code === 1) {
        console.log('更新成功');
        console.log(newContact.value.isDefault, '000000000000000000000000 ');
    } else {
        uni.showToast({
            icon: 'error',
            title: '更新失败'
        });
    }
    getContacts();
}

const popup = ref(null);
const popup1 = ref(null);
const open = () => {
    popup.value.open('center');
}
const open1 = () => {
    popup1.value.open('center');
}
const close = () => {
    popup.value.close();
}
const close1 = () => {
    popup1.value.close();
}
</script>

<style lang="scss" scoped>
	.font_3 {
	    color: #007aff; 
	    font-size: 14px;
	}
	.mt-5 {
		margin-top: 9.38rpx;
	}

	.ml-9 {
		margin-left: 16.88rpx;
	}

	.mt-431 {
		margin-top: 808.13rpx;
	}

	.page {
		padding-top: 18.75rpx;
		background-color: #f5f5dc;
		border-radius: 28.13rpx 28.13rpx 0rpx 0rpx;
		width: 100%;
		overflow-y: auto;
		overflow-x: hidden;
		height: 100%;
	}

	.group {
		padding: 11.25rpx 24.38rpx 7.5rpx;
	}

	.text {
		color: #323232;
		font-size: 37.5rpx;
		font-family: Open Sans;
		line-height: 35.21rpx;
	}

	.image {
		width: 52.5rpx;
		height: 52.5rpx;
	}

	.pos {
		position: absolute;
		right: 24.38rpx;
		top: 50%;
		transform: translateY(-50%);
	}

	.list-item {
		padding: 52.5rpx 15rpx;
		background-color: #fffef8;
		border-bottom: solid 1.88rpx #c8c8c8;
	}

	.list-item:first-child {
		margin-top: 0;
	}

	.image_3 {
		width: 33.75rpx;
		height: 33.75rpx;
	}

	.font {
		font-size: 30rpx;
		font-family: Open Sans;
		line-height: 27.19rpx;
		color: #323232;
	}

	.font_2 {
		font-size: 30rpx;
		font-family: Open Sans;
		line-height: 22.05rpx;
		color: #323232;
	}

	.group_2 {
		margin-right: 11.25rpx;
	}

	.image_2 {
		width: 39.38rpx;
		height: 39.38rpx;
	}

	.section {
		margin-left: 16.88rpx;
		padding: 22.5rpx 0 15rpx;
		background-color: #fffef8;
	}

	.text-wrapper {
		padding: 30rpx 0;
		background-color: #fbb612;
		border-radius: 75rpx;
		width: 639.38rpx;
	}

	.text_2 {
		color: #ffffff;
		font-size: 33.75rpx;
		font-family: Open Sans;
		line-height: 31.22rpx;
	}
   //  .pop{
   //        height: 300px;
		 //  width: 400px;
		 //  padding: 20px;
   //      /* 输入框的通用样式 */
   //      input {
			// margin-left: 10%;
   //          width: 80%; // 占满弹窗宽度,可按需调整
   //          margin-bottom: 15px;
   //          padding: 10px;
   //          border: 1px solid #ccc;
   //          border-radius: 5px;
   //      }
    
   //      /* 复选框的通用样式 */
   //      checkbox {
   //          margin-bottom: 15px;
   //      }
    
   //      /* 按钮的通用样式 */
   //      button {
   //          width: 45%; // 按钮宽度占比,可根据实际调整布局
   //          padding: 8px 0;
   //          border: none;
   //          border-radius: 5px;
   //          font-size: 14px;
   //          cursor: pointer;
   //          transition: background-color 0.3s ease;
   //      }
   //  }
    
   //  /* 第一个弹窗添加联系人的特定按钮样式 */
   //  .pop:first-child button:first-child {
   //      background-color: #007aff;
   //      color: white;
   //  }
    
   //  .pop:first-child button:last-child {
   //      background-color: #ccc;
   //      color: #333;
   //  }
    
   //  /* 第二个弹窗修改联系人的特定按钮样式 */
   //  .pop:last-child button:first-child {
   //      background-color: #4caf50;
   //      color: white;
   //  }
    
   //  .pop:last-child button:last-child {
   //      background-color: #ccc;
   //      color: #333;
   //  }
	@import url(/common/css/global.css);
</style>