export default { data() { return { taskList: [], currentFilter: 'default', // default, distance, time filterCondition: '筛选条件', sortDistance: 'asc', // asc, desc sortTime: 'asc', scrollTop: 0, // Track scroll position isFilterShow: false, tempFilter: { service: '全部', distance: '全部', amount: '全部' }, activeFilter: { service: '全部', distance: '全部', amount: '全部' }, workStatus: 'working', // working | resting showConfirmModal: false, showPetModal: false, currentPetInfo: {}, showRejectModal: false, rejectReason: '', currentOrder: null, showAcceptConfirmModal: false, showNavModal: false, navTargetItem: null, navTargetPointType: '' } }, onPageScroll(e) { this.scrollTop = e.scrollTop; }, onLoad() { // Initial load this.checkWorkStatus(); this.loadTaskList(); }, onShow() { // Update status when returning from other pages this.checkWorkStatus(); }, methods: { checkWorkStatus() { const status = uni.getStorageSync('workStatus'); if (status) { this.workStatus = status; } else { // Default to working if not set this.workStatus = 'working'; uni.setStorageSync('workStatus', 'working'); } }, toggleFilter() { if (this.workStatus === 'resting') return; // Disable filter when resting? Or keep it? User didn't specify, but usually disabled. Let's keep it enabled for now as they might look at filters before working. this.isFilterShow = !this.isFilterShow; }, goToWorkStatus() { uni.navigateTo({ url: '/pages/home/work-status' }); }, startWork() { this.showConfirmModal = true; }, confirmStartWork() { this.workStatus = 'working'; uni.setStorageSync('workStatus', 'working'); this.loadTaskList(); this.showConfirmModal = false; uni.showToast({ title: '已开始接单', icon: 'success' }); }, closeConfirmModal() { this.showConfirmModal = false; }, showPetProfile(item) { this.currentPetInfo = item; this.showPetModal = true; }, closePetProfile() { this.showPetModal = false; }, openRejectModal(item) { this.currentOrder = item; this.rejectReason = ''; this.showRejectModal = true; }, closeRejectModal() { this.showRejectModal = false; this.currentOrder = null; }, confirmReject() { if (!this.rejectReason.trim()) { uni.showToast({ title: '请输入拒绝理由', icon: 'none' }); return; } // Add actual API call here uni.showToast({ title: '已拒绝接单', icon: 'success' }); this.showRejectModal = false; }, openAcceptModal(item) { this.currentOrder = item; this.showAcceptConfirmModal = true; }, closeAcceptModal() { this.showAcceptConfirmModal = false; this.currentOrder = null; }, confirmAccept() { // Add actual API call here uni.showToast({ title: '接单成功', icon: 'success' }); this.showAcceptConfirmModal = false; }, openNavigation(item, pointType) { this.navTargetItem = item; this.navTargetPointType = pointType; this.showNavModal = true; }, closeNavModal() { this.showNavModal = false; }, chooseMap(mapType) { let item = this.navTargetItem; let pointType = this.navTargetPointType; let name = pointType === 'start' ? item.startLocation : item.endLocation; let address = pointType === 'start' ? item.startAddress : item.endAddress; this.showNavModal = false; uni.openLocation({ latitude: 30.52, // Mock lat longitude: 114.31, // Mock lng name: name || '目的地', address: address || '默认地址', success: function () { console.log('打开导航成功: ' + mapType); } }); }, selectService(type) { this.tempFilter.service = type; }, selectDistance(type) { this.tempFilter.distance = type; }, selectAmount(type) { this.tempFilter.amount = type; }, resetFilter() { this.tempFilter = { service: '全部', distance: '全部', amount: '全部' }; }, confirmFilter() { this.activeFilter = { ...this.tempFilter }; this.isFilterShow = false; uni.showToast({ title: '筛选已生效', icon: 'none' }); // Add filtering logic here if needed }, closeFilter() { this.isFilterShow = false; }, goToDetail(item) { console.log('Go to detail', item); }, loadTaskList() { this.taskList = [ { type: 1, // 接送 typeText: '接送', typeIcon: '/static/icons/car.svg', // Ensure this is the yellow car icon price: '20.00', timeLabel: '取货时间', time: '2026/02/10 10:00', petAvatar: '/static/dog.png', petName: '哈士奇宝宝', petBreed: '哈士奇', petGender: 'M', petAge: '2岁', petWeight: '12kg', petPersonality: '活泼好动,亲人', petHobby: '喜欢追球,爱吃鸡胸肉', petRemark: '无特殊过敏史', petTags: ['已免疫', '已绝育', '性格温顺'], petLogs: [ { date: '2026/01/15', content: '左后腿有点敏感,剪指甲时要注意。', recorder: '李海' }, { date: '2025/12/28', content: '今天便便正常,精神很好。', recorder: '张三' }, { date: '2025/10/11', content: '模拟更多备注数据,测试吸顶滚动效果 1...', recorder: '系统记录' }, { date: '2025/10/12', content: '模拟更多备注数据,测试吸顶滚动效果 2...', recorder: '系统记录' } ], startLocation: '武汉大学宠物店', startAddress: '武汉市洪山区珞喻路458号', startDistance: '0.5km', endLocation: '张** 189****8451', endAddress: '武汉市武昌区新区大道凤凰广场A座一楼25号', endDistance: '2.5km', remark: '这里是订单备注信息。' }, { type: 2, // 喂遛 typeText: '喂遛', typeIcon: '/static/icons/walk.svg', // Ensure this is the orange walk icon price: '35.00', timeLabel: '服务时间', time: '2026/02/11 14:00', petAvatar: '/static/dog.png', petName: '金毛', petBreed: '金毛寻回犬', petGender: 'F', petAge: '3岁', petWeight: '25kg', petPersonality: '温顺,听话', petHobby: '喜欢玩飞盘', petRemark: '暂无', petTags: ['已免疫', '未绝育'], petLogs: [], // Walking order typically has a service address (destination) endLocation: '王女士 138****1234', endAddress: '武汉市江汉区泛海国际居住区', endDistance: '1.2km', serviceContent: '需自带牵引绳,遛弯30分钟。', remark: '狗狗比较活泼,请注意安全。' }, { type: 3, // 洗护 typeText: '洗护', typeIcon: '/static/icons/wash.svg', price: '50.00', timeLabel: '服务时间', time: '2026/02/12 09:30', petAvatar: '/static/dog.png', // Or cat avatar if available petName: 'Mimi', petBreed: '布偶猫', petGender: 'F', petAge: '1.5岁', petWeight: '5kg', petPersonality: '胆小,怕生', petHobby: '喜欢梳毛', petRemark: '对水敏感', petTags: ['已免疫'], petLogs: [], endLocation: '赵先生 159****9876', endAddress: '武汉市汉阳区钟家村', endDistance: '3.0km', serviceContent: '上门洗澡,剪指甲。', remark: '猫咪有点怕生。' }, { type: 1, // 接送 (Repeat for demo) typeText: '接送', typeIcon: '/static/icons/car.svg', price: '25.00', timeLabel: '取货时间', time: '2026/02/13 11:00', petAvatar: '/static/dog.png', petName: '柯基', petBreed: '柯基犬', petGender: 'M', petAge: '2岁', petWeight: '10kg', petPersonality: '活泼', petHobby: '散步', petRemark: '', petTags: [], petLogs: [], startLocation: '宠物医院', startAddress: '武汉市武昌区中南路', startDistance: '1.0km', endLocation: '李小姐 136****5678', endAddress: '武汉市武昌区积玉桥', endDistance: '4.5km', remark: '请带上笼子。' } ] }, setFilter(type) { this.currentFilter = type; if (type === 'distance') { this.sortDistance = this.sortDistance === 'asc' ? 'desc' : 'asc'; uni.showToast({ title: `按距离${this.sortDistance === 'asc' ? '升序' : '降序'}`, icon: 'none' }); } else if (type === 'time') { this.sortTime = this.sortTime === 'asc' ? 'desc' : 'asc'; uni.showToast({ title: `按时间${this.sortTime === 'asc' ? '升序' : '降序'}`, icon: 'none' }); } }, showFilterDropdown() { this.toggleFilter(); } } }