<template>
    <div class="main_container hide_scrollbar">
        <!-- 问卷头部 -->
        <div class="questionnaire_head">
            <h1 class="head_title">{{ questionaireMsg?.assessmentTitle }}</h1>
            <p class="head_desc">{{ questionaireMsg?.assessmentIllustrate }}</p>
        </div>

        <!-- 整卷填写问卷内容 -->
        <AppQuestionnaireQuestionList 
            :allowEdit="!isCurrentQuestionnaireTaskFinish"
            :questionaireData="questionaireMsg.questionData" 
            v-model:questionListRef="questionListRef" 
            @formListAnswerChange="HandleQuestionnaireFormChange"
        />
        <div class="operation">
            <el-button :class="[isCurrentQuestionnaireTaskFinish ? 'is-disabled' :  'button_background']" 
                @click="isCurrentQuestionnaireTaskFinish ? '' : HandleFinishReview()">完成本科目</el-button>
        </div>
    </div>
</template>


<script setup lang="ts">
import { ref, computed,watch } from 'vue';
import AppQuestionnaireQuestionList from '@/components/AppQuestionnaireQuestionList.vue';
/**
 * 2. 问卷整体数据
 */

//  当前问卷任务是否全部完成 ———— 以及问卷是否结束
const isCurrentQuestionnaireTaskFinish = ref(false) //true  false


//  模拟所有教师的问卷数据（目前只有两个）
const mockTeacherQuestionnaireData = ref([
    {
        "id": "661146080469061632",
        "createdAt": "2026-07-15 09:58",
        "schoolId": "10007",
        "teacherId": "510448965049651259",
        "teacherName": "李敏",
        "assessmentTitle": "大学生消费情况调查问卷-复制",
        "assessmentIllustrate": "您好！这次问卷只是针对中小学现状的调查，为心理教育提供依据。本调查问卷无记名，完全保密，请同学们必须如实填写，以利于调查问卷的有效性！谢谢合作！",
        "assessmentScore": "15.00",
        "assessmentSortCode": 104,
        "useStatus": 0,
        "questionCount": null,
        "fullScore": null,
        "questionData": [
            {
                "id": "663805618586464256",
                "createdAt": "2026-07-22 18:06:32",
                "updatedAt": "2026-07-22 18:06:32",
                "schoolId": "10007",
                "assessmentId": "661146080469061632",
                "questionClass": 0,
                "questionTitleName": "您的性别*",
                "questionType": 0,
                "questionAnswerType": 1,
                "questionSortRole": 0,
                "questionSortCode": 1,
                "questionScore": null,
                "evaluationType": 0,
                "answerData": [
                    {
                        "id": "663805618636795904",
                        "createdAt": "2026-07-22 18:06:32",
                        "updatedAt": "2026-07-22 18:06:32",
                        "schoolId": "10007",
                        "assessmentId": "661146080469061632",
                        "questionId": "663805618586464256",
                        "questionClass": null,
                        "questionSortCode": 1,
                        "answerName": "男",
                        "answerScore": null
                    },
                    {
                        "id": "663805618645184512",
                        "createdAt": "2026-07-22 18:06:32",
                        "updatedAt": "2026-07-22 18:06:32",
                        "schoolId": "10007",
                        "assessmentId": "661146080469061632",
                        "questionId": "663805618586464256",
                        "questionClass": null,
                        "questionSortCode": 2,
                        "answerName": "女",
                        "answerScore": null
                    }
                ],
                status:'done',
            },
            {
                "id": "663805618678738944",
                "createdAt": "2026-07-22 18:06:32",
                "updatedAt": "2026-07-22 18:06:32",
                "schoolId": "10007",
                "assessmentId": "661146080469061632",
                "questionClass": 0,
                "questionTitleName": "每月消消消消消消消消消消消消消消消消消消消消消费多******用于哪些方面*",
                "questionType": 1,
                "questionAnswerType": 1,
                "questionSortRole": 1,
                "questionSortCode": 2,
                "questionScore": null,
                "evaluationType": 0,
                "answerData": [
                    {
                        "id": "663805618703904768",
                        "createdAt": "2026-07-22 18:06:32",
                        "updatedAt": "2026-07-22 18:06:32",
                        "schoolId": "10007",
                        "assessmentId": "661146080469061632",
                        "questionId": "663805618678738944",
                        "questionClass": null,
                        "questionSortCode": 1,
                        "answerName": "伙食",
                        "answerScore": null
                    },
                    {
                        "id": "663805618708099072",
                        "createdAt": "2026-07-22 18:06:32",
                        "updatedAt": "2026-07-22 18:06:32",
                        "schoolId": "10007",
                        "assessmentId": "661146080469061632",
                        "questionId": "663805618678738944",
                        "questionClass": null,
                        "questionSortCode": 2,
                        "answerName": "购置衣物",
                        "answerScore": null
                    },
                    {
                        "id": "663805618708099073",
                        "createdAt": "2026-07-22 18:06:32",
                        "updatedAt": "2026-07-22 18:06:32",
                        "schoolId": "10007",
                        "assessmentId": "661146080469061632",
                        "questionId": "663805618678738944",
                        "questionClass": null,
                        "questionSortCode": 3,
                        "answerName": "日常交际",
                        "answerScore": null
                    }
                ],
                status:'done',
            },
            {
                "id": "663805618745847808",
                "createdAt": "2026-07-22 18:06:32",
                "updatedAt": "2026-07-22 18:06:32",
                "schoolId": "10007",
                "assessmentId": "661146080469061632",
                "questionClass": 0,
                "questionTitleName": "你希望老师在哪里改进*",
                "questionType": 2,
                "questionAnswerType": 1,
                "questionSortRole": 0,
                "questionSortCode": 3,
                "questionScore": null,
                "evaluationType": 0,
                "answerData": [],
                status:'pending',
            },
            {
                "id": "663805618766819328",
                "createdAt": "2026-07-22 18:06:32",
                "updatedAt": "2026-07-22 18:06:32",
                "schoolId": "10007",
                "assessmentId": "661146080469061632",
                "questionClass": 1,
                "questionTitleName": "你对本次问卷调查的感受",
                "questionType": 5,
                "questionAnswerType": 1,
                "questionSortRole": 0,
                "questionSortCode": 4,
                "questionScore": "10.00",
                "evaluationType": 0,
                "answerData": [],
                status:'unfinish',
            },
            {
                "id": "663805618787790848",
                "createdAt": "2026-07-22 18:06:32",
                "updatedAt": "2026-07-22 18:06:32",
                "schoolId": "10007",
                "assessmentId": "661146080469061632",
                "questionClass": 1,
                "questionTitleName": "你对本次问卷调查的感受",
                "questionType": 5,
                "questionAnswerType": 1,
                "questionSortRole": 0,
                "questionSortCode": 5,
                "questionScore": "15.00",
                "evaluationType": 1,
                "answerData": [],
                status:'unfinish',
            }
        ]
    },
    {
        "id": "661148998005952512",
        "createdAt": "2026-07-15 10:10",
        "schoolId": "10007",
        "teacherId": "510448965049651259",
        "teacherName": "李敏",
        "assessmentTitle": "必填项传参测试",
        "assessmentIllustrate": "必填项传参测试",
        "assessmentScore": "0.00",
        "assessmentSortCode": 101,
        "useStatus": 1,
        "questionCount": null,
        "fullScore": null,
        "questionData": [
            {
                "id": "661213148149264384",
                "createdAt": "2026-07-15 14:24:59",
                "updatedAt": "2026-07-15 14:24:59",
                "schoolId": "10007",
                "assessmentId": "661148998005952512",
                "questionClass": 0,
                "questionTitleName": "项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出",
                "questionType": 1,
                "questionAnswerType": 1,
                "questionSortRole": 1,
                "questionSortCode": 1,
                "questionScore": null,
                "evaluationType": 0,
                "answerData": [
                    {
                        "id": "661213148170235904",
                        "createdAt": "2026-07-15 14:24:59",
                        "updatedAt": "2026-07-15 14:24:59",
                        "schoolId": "10007",
                        "assessmentId": "661148998005952512",
                        "questionId": "661213148149264384",
                        "questionClass": null,
                        "questionSortCode": 1,
                        "answerName": "项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出",
                        "answerScore": null
                    },
                    {
                        "id": "661213148174430208",
                        "createdAt": "2026-07-15 14:24:59",
                        "updatedAt": "2026-07-15 14:24:59",
                        "schoolId": "10007",
                        "assessmentId": "661148998005952512",
                        "questionId": "661213148149264384",
                        "questionClass": null,
                        "questionSortCode": 2,
                        "answerName": "项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出",
                        "answerScore": null
                    },
                    {
                        "id": "661213148178624512",
                        "createdAt": "2026-07-15 14:24:59",
                        "updatedAt": "2026-07-15 14:24:59",
                        "schoolId": "10007",
                        "assessmentId": "661148998005952512",
                        "questionId": "661213148149264384",
                        "questionClass": null,
                        "questionSortCode": 3,
                        "answerName": "项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出",
                        "answerScore": null
                    },
                    {
                        "id": "661213148182818816",
                        "createdAt": "2026-07-15 14:24:59",
                        "updatedAt": "2026-07-15 14:24:59",
                        "schoolId": "10007",
                        "assessmentId": "661148998005952512",
                        "questionId": "661213148149264384",
                        "questionClass": null,
                        "questionSortCode": 4,
                        "answerName": "项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出",
                        "answerScore": null
                    }
                ]
            },
            {
                "id": "661213148224761856",
                "createdAt": "2026-07-15 14:24:59",
                "updatedAt": "2026-07-15 14:24:59",
                "schoolId": "10007",
                "assessmentId": "661148998005952512",
                "questionClass": 0,
                "questionTitleName": "必填项测试1",
                "questionType": 0,
                "questionAnswerType": 1,
                "questionSortRole": 1,
                "questionSortCode": 2,
                "questionScore": null,
                "evaluationType": 0,
                "answerData": [
                    {
                        "id": "661213148249927680",
                        "createdAt": "2026-07-15 14:24:59",
                        "updatedAt": "2026-07-15 14:24:59",
                        "schoolId": "10007",
                        "assessmentId": "661148998005952512",
                        "questionId": "661213148224761856",
                        "questionClass": null,
                        "questionSortCode": 1,
                        "answerName": "选项1",
                        "answerScore": null
                    },
                    {
                        "id": "661213148254121984",
                        "createdAt": "2026-07-15 14:24:59",
                        "updatedAt": "2026-07-15 14:24:59",
                        "schoolId": "10007",
                        "assessmentId": "661148998005952512",
                        "questionId": "661213148224761856",
                        "questionClass": null,
                        "questionSortCode": 2,
                        "answerName": "选项2",
                        "answerScore": null
                    }
                ]
            },
            {
                "id": "661213148283482112",
                "createdAt": "2026-07-15 14:24:59",
                "updatedAt": "2026-07-15 14:24:59",
                "schoolId": "10007",
                "assessmentId": "661148998005952512",
                "questionClass": 0,
                "questionTitleName": "选项溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出测试",
                "questionType": 0,
                "questionAnswerType": 1,
                "questionSortRole": 0,
                "questionSortCode": 3,
                "questionScore": null,
                "evaluationType": 0,
                "answerData": [
                    {
                        "id": "661213148308647936",
                        "createdAt": "2026-07-15 14:24:59",
                        "updatedAt": "2026-07-15 14:24:59",
                        "schoolId": "10007",
                        "assessmentId": "661148998005952512",
                        "questionId": "661213148283482112",
                        "questionClass": null,
                        "questionSortCode": 1,
                        "answerName": "选项溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试选项溢出测试选项溢出测试选项溢出测试",
                        "answerScore": null
                    },
                    {
                        "id": "661213148312842240",
                        "createdAt": "2026-07-15 14:24:59",
                        "updatedAt": "2026-07-15 14:24:59",
                        "schoolId": "10007",
                        "assessmentId": "661148998005952512",
                        "questionId": "661213148283482112",
                        "questionClass": null,
                        "questionSortCode": 2,
                        "answerName": "选项溢出测试选项溢出测试选项溢溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试出测试选项溢出测试选项溢出测试",
                        "answerScore": null
                    },
                    {
                        "id": "661213148312842241",
                        "createdAt": "2026-07-15 14:24:59",
                        "updatedAt": "2026-07-15 14:24:59",
                        "schoolId": "10007",
                        "assessmentId": "661148998005952512",
                        "questionId": "661213148283482112",
                        "questionClass": null,
                        "questionSortCode": 3,
                        "answerName": "选项溢出测试选项溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试溢出测试选项溢出测试选项溢出测试选项溢出测试",
                        "answerScore": null
                    },
                    {
                        "id": "661213148317036544",
                        "createdAt": "2026-07-15 14:24:59",
                        "updatedAt": "2026-07-15 14:24:59",
                        "schoolId": "10007",
                        "assessmentId": "661148998005952512",
                        "questionId": "661213148283482112",
                        "questionClass": null,
                        "questionSortCode": 4,
                        "answerName": "4354",
                        "answerScore": null
                    },
                    {
                        "id": "661213148321230848",
                        "createdAt": "2026-07-15 14:24:59",
                        "updatedAt": "2026-07-15 14:24:59",
                        "schoolId": "10007",
                        "assessmentId": "661148998005952512",
                        "questionId": "661213148283482112",
                        "questionClass": null,
                        "questionSortCode": 5,
                        "answerName": "789",
                        "answerScore": null
                    }
                ]
            }
        ]
    },
])

// 模拟问卷响应数据
const mockResData = computed(()=>mockTeacherQuestionnaireData.value[currentActiveTeacherIndex.value % 2])

// 最终渲染的整体问卷数据
const questionaireMsg = computed(()=>{
    let addedQuestionList = mockResData.value.questionData.map(item=>{
        let options = item.answerData.map(opt=>{
            return{
                content: opt.answerName,
                score: opt.answerScore,
                id: opt.id
            }
        })
        let extraConfig = []
        if(Number(item.questionAnswerType) === 1){
            extraConfig.push('required')
        }
        if(Number(item.questionSortRole) === 1){
            extraConfig.push('isHorizontal')
        }
        return {
            ...item,
            id:item.id,
            extraConfig,    // 是否必答 required, 是否横排 isHorizontal
            options,
            answer:undefined
        }
    })
    return{
        assessmentTitle:mockResData.value.assessmentTitle,  //问卷标题
        assessmentIllustrate:mockResData.value.assessmentIllustrate,  //问卷简介
        // 问卷试题列表
        questionData:addedQuestionList
    }
})



/**
 * 3. 整卷填写相关变量 和操作
 */
// 问卷试题 dom
const questionListRef = ref()
// 当前选中的待评价科目教师
const currentActiveTeacherIndex = ref(0) 

// 整卷填写 教师问卷的答案
const fullQuestionnaireAnswer = ref({})


// 接收问卷表单填写信息的变更
const HandleQuestionnaireFormChange = (val)=>{
    fullQuestionnaireAnswer.value = val
}
// 问卷整卷提交
const HandleFinishReview = ()=>{
    fullQuestionnaireAnswer.value = {}
}
</script>


<style lang="scss" scoped>
.main_container {
    display: flex;
    flex-direction: column;
    background-color: #ffffff !important;
    padding:calc(20 * var(--app-rpx)) !important;

    // 浏览器访问 底部多占  90 * var(--app-rpx) —— 待完善
    padding-bottom: calc((90 + 20) * var(--app-rpx)) !important;
    
    /* --- 头部样式 --- */
    .questionnaire_head {
        text-align: center;
        margin-bottom: calc(20 * var(--app-rpx));
        .head_title {
            font-size: calc(18 * var(--app-rpx));
            line-height: calc(25 * var(--app-rpx));
            font-weight: 600;
            color: #000;
            margin-bottom: calc(8 * var(--app-rpx));
        }
        .head_desc {
            font-size:calc(12 * var(--app-rpx));
            color: #999999;
            line-height:calc(17 * var(--app-rpx));
        }
    }

    .operation{
        flex: 1 1;
        display: flex;
        align-items: flex-end;
        justify-content: center;
        .el-button{
            margin-top: calc(40 * var(--app-rpx));
            width: 100%;
            height: calc(44 * var(--app-rpx));
            font-size: calc(16 * var(--app-rpx));
            font-weight: 600;
            border-radius: calc(4 * var(--app-rpx));
        }
    }
}

</style>