<template>
    <div class="questionnaire">
        <van-nav-bar title="调查问卷" left-text="返回" right-text="提交" left-arrow @click-left="onClickLeft"
            @click-right="onClickRight" />
        <van-form>
            <div v-for="(item, index) in formData" :key="index">
                <!-- 单选 -->
                <van-field v-if="item.type == 0" :name="'radio_' + item.questionId" :label="item.subject">
                    <template #input>
                        <van-radio-group v-model="item.answer" direction="horizontal">
                            <van-radio v-for="(list, key) in item.answerItems" :key="key" :name="list.serialNo">
                                {{ list.answerItem }}
                            </van-radio>
                        </van-radio-group>
                    </template>
                </van-field>
                <!-- 复选框 -->
                <van-field v-if="item.type == 1" :name="'multipleChoice_' + item.questionId" :label="item.subject">
                    <template #input>
                        <van-checkbox-group v-model="item.answer" direction="horizontal">
                            <van-checkbox v-for="(list, key) in item.answerItems" :key="key" :name="list.serialNo"
                                shape="square">
                                {{ list.answerItem }}
                            </van-checkbox>
                        </van-checkbox-group>
                    </template>
                </van-field>
                <!-- 文本输入 -->
                <van-field v-if="item.type == 2" v-model="item.answer" rows="3" autosize
                    :name="'textBox_' + item.questionId" :label="item.subject" type="textarea" placeholder="" />
                <!-- 单行文本 -->
                <!-- <van-field
                    v-if="item.type == 2"
                    v-model="item.value"
                    :name="'textBox_' + item.questionId"
                    :label="item.subject"
                    placeholder="请输入文本"
                /> -->
                <!-- 切换 -->
                <!-- <van-field
                    v-if="item.type == 'switch'"
                    :name="'switch_' + item.questionId"
                    :label="item.subject"
                >
                    <template #input>
                        <van-switch v-model="item.value" size="20" />
                    </template>
                </van-field> -->
                <!-- 分割线 -->
                <van-divider />
            </div>
        </van-form>
    </div>
</template>

<script>
import { Form, RadioGroup, Radio, Divider } from 'vant';
import APIQuestionnaire from '@/api/questionnaire';
export default {
    components: {
        [Form.name]: Form,
        [RadioGroup.name]: RadioGroup,
        [Radio.name]: Radio,
        [Divider.name]: Divider
    },
    data() {
        return {
            formData: []
        };
    },
    created() {
        // 初始化问卷
        this.init();
    },
    mounted() { },
    methods: {
        onClickLeft(value) {
            console.log(value)
            this.$router.back()
        },
        onClickRight() {

            // 提交问卷
            if (this.validate()) {
                let questionnaireData = [];
                this.formData.forEach(element => {
                    let answer = "";
                    if (element.type == 1) {
                        answer = element.answer.join("|");
                    } else {
                        answer = element.answer
                    }
                    questionnaireData.push({
                        "questionId": element.questionId,
                        "answer": answer
                    })
                });
                let params = {
                    "id": 5,
                    "personId": 15,
                    "questionnaireData": questionnaireData
                }
                APIQuestionnaire.submitTask(params).then(res => {
                    this.$notify({ type: 'success', message: res.data.message });
                });
            }
        },
        init() {
            // 获取问卷
            let params = {
                id: 5,
                personId: 15,
                rankId: 2
            }
            APIQuestionnaire.getTaskDetail(params)
                .then(res => {
                    this.formData = res.data.data.subjectItems;
                    this.formData.forEach(element => {
                        if (element.type == 1) {
                            if (element.answer !== "") {
                                element.answer = element.answer.split('|');
                            } else {
                                element.answer = [];
                            }
                        }
                    });
                })
                .catch(e => {
                    console.log(e);
                })
        },
        validate() {
            let is = true;
            this.formData.forEach(element => {
                if (element.type == 0 && element.answer == "") {
                    this.$notify({ type: 'warning', message: "单选项请选择一个选项" });
                    is = false;
                } else if (element.type == 1 && element.answer.length == 0) {
                    this.$notify({ type: 'warning', message: "多选项至少选择一项" });
                    is = false;
                } else if (element.type == 2 && element.answer == "") {
                    this.$notify({ type: 'warning', message: "文本内容不能为空" });
                    is = false;
                }
            })
            return is;
        }
    }
};
</script>
<style scoped lang="scss">
@import './scss/index.scss';
</style>
