<template>
  <view class="page flex-col">
    <view class="group_1 flex-row">
      
      
    </view>
    <view class="group_2 flex-row">
      <image
        class="label_1"
        referrerpolicy="no-referrer"
        src="/static/lanhu_kaoshijieguo/FigmaDDSSlicePNGacf527a62cbe7351c6472edd8f5b2814.png"
		@click="handleBack()"
      />
      <text class="text_1">考试结果</text>
      
    </view>
    <view class="group_4 flex-col">
      <view class="block_1 flex-row justify-between" @click="show = true">
        <text class="text_19">是否通过</text>
        <view class="image-text_1 flex-row justify-between">
		  
		  	<view>
		  		<u-picker v-model="process.examStatus"  :show="show" :columns="ifPassColumns" title="是否通过" @confirm="ifPassOnConfirm" @cancel="show = false">
				</u-picker>
				<text class="text-group_2">{{ selectedValue || '请选择' }}</text>
		  	</view>
		  
        </view>
      </view>
      <view class="text-wrapper_7 flex-row justify-between">
        <text class="text_4">分数</text>
		<view class="text_5_1 ">
		<u--input
		    placeholder="请输入分数"
		    border="none"
		    v-model="process.examScore"
			maxlength="3"
			inputAlign="right"
		  >分</u--input>
        </view>
      </view>
      <view class="text-wrapper_8 flex-row justify-between">
        <text class="text_20">时间</text>
		<view>
			<u-datetime-picker
			  :show="showTimePicker"
			  v-model="process.examTime"
			  mode="datetime"
			  @confirm="onConfirmExamTime"
			  @cancel="showTimePicker = false"
			></u-datetime-picker>
			<text class="text_3" @click="showTimePicker = true">{{ process.examTime ? formatDate(process.examTime) : '选择时间' }}</text>
			</view>
        
		
      </view>
      <!-- <view class="text-wrapper_9 flex-row justify-between">
        <text class="text_6">姓名</text>
        <view class="text_5_1 ">
        <u--input
            placeholder="请输入姓名"
            border="none"
            v-model="process.userName"
        	maxlength="3"
        	inputAlign="right"
          ></u--input>
        </view>
      </view> -->
      <view class="text-wrapper_10 flex-row justify-between">
        <text class="text_8">考试类型</text>
        <text class="text_9">{{ courseType }}</text>
      </view>
      <view class="text-wrapper_11 flex-row justify-between" @click="subjectShow = true">
        <text class="text_10">考试科目</text>
		<view>
			<u-picker v-model="process.subject"  :show="subjectShow" :columns="subjectColumns" title="科目" @confirm="subjectOnConfirm" @cancel="subjectShow = false">
			</u-picker>
			<text class="text-group_2">{{ subjectValue || '请选择科目' }}</text>
		</view>
      </view>
    </view>
    <view class="group_5 flex-col">
      <text class="text_16">备注</text>
      <u--textarea class="text_17" v-model="process.remark" placeholder="请输入内容" count ></u--textarea>
      <text class="text_18">图片</text>
      <view class="image-wrapper_4 flex-row justify-between">
		  <u-upload
		    
			:fileList="displayFileList"
		    @afterRead="afterRead"
		    @delete="deletePic"
		    multiple
		    :maxCount="2"
		  ></u-upload>
      </view>
    </view>
	<view class="block_8 flex-col">
	  <view class="text-wrapper_8 flex-col" @click="saveData()">
	    <text class="text_19">确定</text>
	  </view>
	</view>
  </view>
</template>
<script>
	import upload from '@/utils/upload.js'
	import request from '@/utils/request.js'
import { getLocalUserInfo } from '../../utils/auth';
export default {
  data() {
    return {
		show: false,
		showTimePicker: false,
		subjectShow: false,
		ifPassColumns: [['已通过', '未通过']],
		subjectColumns: [['科目一']],
		selectedValue: '', 
		subjectValue: '',
		fileList: [],
		imageUrl: this.$imagesUrl,
		userInfo: [],
		courseType: null,
		courseCompleteStatusList: {},
		process: {
			userName: null,
			userId: null,
			subject:null,
			
			examNum: null,
			examStatus: null,
			examScore: null,
			remark: '',
			examTime: null,
			images: null,
			tenantId: null,
			courseId: null,
		},
      constants: {}
    };
  },
  onLoad() {
  	this.userInfo = getLocalUserInfo()
	this.getUserOrderDetails()
  },
  computed: {
    displayFileList() {
      return this.fileList.map(item => {
        if (item.url.startsWith('http')) {
          return item;
        }
        
        const prefix = this.$imagesUrl.endsWith('/') ? this.$imagesUrl : `${this.$imagesUrl}/`;
        const fullUrl = item.url.startsWith('/') 
          ? `${prefix}${item.url.slice(1)}` 
          : `${prefix}${item.url}`; 
        
        return {
          ...item,
          url: fullUrl,
        };
      });
    },
  },
  methods: {
	  handleBack() {
	    uni.navigateBack({
	    	delta: 1 
	    });
	  },
	  ifPassOnConfirm(value) {
	      console.log('选中的值:', value);
	      
	      const statusMap = {
	        '已通过': 1,
	        '未通过': 0
	      };
	  
	      // 更新数据
	      this.process.examStatus = statusMap[value.value[0]];
		  console.log('value[0]', value.value[0])
	      this.selectedValue = value.value[0]; 
	      this.show = false; 
	  
	      console.log('examStatus:', this.process.examStatus);
		 console.log('process', this.process)
	    },
		
		subjectOnConfirm(value) {
		    console.log('选中的值:', value);
		    
		    const statusMap = {
		      '科目一': 1,
		      '科目四': 4
		    };
		
		    // 更新数据
		    this.process.subject = statusMap[value.value[0]];
				  console.log('value[0]', value.value[0])
		    this.subjectValue = value.value[0];
		    this.subjectShow = false;
		
		    console.log('subject:', this.process.subject);
				 console.log('process', this.process)
		  },
		  
		onConfirmExamTime(value) {
		    console.log("选中的时间:", value);
		    this.process.examTime = value; 
		    this.showTimePicker = false; 
		  },
		  // 格式化时间戳的方法
		      formatDate(timestamp) {
		        const date = new Date(timestamp);
		        const year = date.getFullYear();
		        const month = String(date.getMonth() + 1).padStart(2, '0');
		        const day = String(date.getDate()).padStart(2, '0');
		        const hours = String(date.getHours()).padStart(2, '0');
		        const minutes = String(date.getMinutes()).padStart(2, '0');
		        return `${year}-${month}-${day} ${hours}:${minutes}`;
		      },
			  
	
			  deletePic(event) {
			    this.fileList.splice(event.index, 1);
			  },
		      // 新增图片
		      async afterRead(event) {
		        let lists = [].concat(event.file);
		        let fileListLen = this.fileList.length;
		      
		        for (let i = 0; i < lists.length; i++) {
		          try {
		            const resultUrl = await this.uploadFilePromise(lists[i].url);
		            let item = {
		              status: 'success',
		              url: resultUrl,
		            };
		            this.fileList.splice(fileListLen, 0, item);
		            fileListLen++;
		          } catch (error) {
		            console.error('图片上传失败', error);
		          }
		        }
		      },
		      uploadFilePromise(filePath) {
				  console.log('图片地址', filePath)
		        return new Promise((resolve, reject) => {
		          upload({
		            url: '/app-api/small-upload/common/upload',
		            filePath: filePath,
		          }).then((res) => {
		            if (res.data && res.data.url) {
		              resolve(res.data.url);
					  console.log('返回', res)
					  console.log('返回url', res.data.url)
		            } else {
		              reject(new Error('上传失败'));
		            }
		          }).catch(err => reject(err));
		        });
		      },
			  
			  getUserOrderDetails() {
			        request({
			          url: '/app-api/small/drive/school-course-order/page',
			          method: 'GET',
			          params: {
			            userId: this.userInfo.id,
			  			paymentStatus:'2',
						ifEnd: 0,
			          },
			  		tenantIdFlag : false
			        }).then(res => {
			          this.orderList = res.data.records;
			  			  console.log('订单信息',res.data)
					  if(res.data.records.length > 0){
						  const tempData = res.data.records[0]
						  this.process.courseId = tempData.courseId
						  this.courseType = tempData.courseType
						  this.process.tenantId = tempData.tenantId
						  this.getCourseCompleteStatus()
					  }
			        });
			      },
			
			  getCourseCompleteStatus(){
				  console.log('userId', this.userId)
				  console.log('courseId', this.process.courseId)
				  request({
					  url:'/app-api/process/page',
					  method: 'GET',
					  params: {
						  userId: this.userInfo.id,
						  courseId: this.process.courseId,
					  }
				  }).then(res => {
					  this.courseCompleteStatusList = res.data.records
					  console.log('res.data',res.data)
					  if(this.courseCompleteStatusList.length > 0){
						  console.log('courseCompleteStatusList', this.courseCompleteStatusList)
							const subject2 = this.courseCompleteStatusList.find(item => item.subject === 2)
							const subject3 = this.courseCompleteStatusList.find(item => item.subject === 3)
							
							if (subject2?.status === 2 && subject3?.status === 2) {
							  this.subjectColumns = [['科目一', '科目四']]
							} 
					  }
				  })
			  },
			  
			  saveData() {
				  if(this.process.subject === 1 && this.courseCompleteStatusList.length <= 0){
					  console.log('this.courseCompleteStatusList',this.courseCompleteStatusList)
						uni.showToast({ title: '请联系驾校人员', icon: 'none' });
						return;
					  
				  }
				  if(this.process.subject === 4 && this.courseCompleteStatusList.length <= 0){
					  
						uni.showToast({ title: '请联系驾校人员', icon: 'none' });
						return;
					  
				  }
				  console.log('courseCompleteStatusList', this.courseCompleteStatusList.length)
				  this.process.userId = this.userInfo.id
				  this.process.tenantId = this.userInfo.tenantId
			    this.process.images = this.fileList?.map(item => item.url).join(',') || '';
				console.log('process', this.process)
			  
			    if (!this.process.userId || !this.process.subject || !this.process.examScore || !this.process.examStatus || !this.process.examTime) {
			      uni.showToast({ title: '信息填写不完整', icon: 'none' });
			      return;
			    }
				
				request({
					url: '/app-api/process/updateProcess',
					method: 'PUT',
					data: this.process,
				}).then(res => {
					if(res.code === 0){
						 uni.showToast({ 
						      title: '保存成功', 
						      icon: 'success',
						      duration: 1000 
						    });
						setTimeout(() => {
						      uni.navigateBack({
						      	delta: 1 
						      });
						    }, 1500); 
					}else{
						uni.showToast({ title: res.data?.message || '保存失败', icon: 'none' });
					}
				})
			  }
		
  }
};
</script>
<style lang='scss'>
@import '../common/common.scss';
@import './assets/style/index.rpx.scss';

</style>
