From d647cc3a024dbc6c8e1162d9fab4ee5c7ac39f90 Mon Sep 17 00:00:00 2001 From: Huangzhe Date: Sat, 22 Mar 2025 12:18:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=9F=A9=E9=98=B5=E6=8A=BD=E7=A6=BB?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 矩阵的三个组件抽离,由 MatrixQuestion 内部管理 --- src/views/Design/Index.vue | 6 +- .../components/Questions/MartrixQuestion.vue | 114 ----- .../components/Questions/MatrixCheckbox.vue | 166 +------ .../components/Questions/MatrixQuestion.vue | 431 +++++++++--------- .../components/Questions/MatrixRadio.vue | 161 +------ .../components/Questions/MatrixText.vue | 152 +----- src/views/Survey/views/Preview/Index.vue | 4 +- .../questions/PreviewMatrixCheckbox.vue | 20 +- .../questions/PreviewMatrixRadio.vue | 19 +- .../questions/PreviewMatrixText.vue | 24 +- 10 files changed, 268 insertions(+), 829 deletions(-) delete mode 100644 src/views/Design/components/Questions/MartrixQuestion.vue diff --git a/src/views/Design/Index.vue b/src/views/Design/Index.vue index 5458e95..ec6ce09 100644 --- a/src/views/Design/Index.vue +++ b/src/views/Design/Index.vue @@ -49,12 +49,14 @@ > - -import { type Component, computed, defineModel } from 'vue'; -import MatrixCheckbox from '@/views/Design/components/Questions/MatrixCheckbox.vue'; -import MatrixText from '@/views/Design/components/Questions/MatrixText.vue'; -import MatrixRadio from '@/views/Design/components/Questions/MatrixRadio.vue'; - -const question = defineModel('element', { - type: Object, - default: () => { - return {}; - } -}); -const rowRecord = defineModel('rowRecord', { required: false, default: () => [] }); -const isPreview = defineModel('isPreview', { required: false, default: false }); - -// eslint-disable-next-line -const activeComponent = computed(() => { - switch (question.value.question_type) { - case 8: - return MatrixText; - case 9: - return MatrixRadio; - case 10: - return MatrixCheckbox; - } -}); - -if (question.value?.list) question.value.options = question.value?.list; -// 行标签 -const rows = defineModel('rows', { required: false, default: () => [] }); -rows.value.length < 1 && (rows.value = question.value?.options[0] ?? []); -// 列标签 -const cols = defineModel('cols', { required: false, default: () => [] }); -cols.value.length < 1 && (cols.value = question.value?.options[1] ?? []); - -// console.log(rows.value, cols.value); -// const columnLabels = useTemplateRef('columnLabels'); - -// 注意, element.options 里面的东西是数组,第一项内容是行标签内容,第二项内容是列标签内容 -// 类型 AI 生成 切勿盲目相信,以实际为准 -/* const props = */ -defineProps<{ - index: number; - active: boolean; -}>(); - -const emit = defineEmits(['update:element']); -const emitValue = () => { - // console.log(question.value); - emit('update:element', question.value); -}; -const errorMessage = defineModel('errorMessage', { - type: String, - default: '' -}); - - - - diff --git a/src/views/Design/components/Questions/MatrixCheckbox.vue b/src/views/Design/components/Questions/MatrixCheckbox.vue index 5537d83..42f3040 100644 --- a/src/views/Design/components/Questions/MatrixCheckbox.vue +++ b/src/views/Design/components/Questions/MatrixCheckbox.vue @@ -1,86 +1,25 @@ - - diff --git a/src/views/Design/components/Questions/MatrixQuestion.vue b/src/views/Design/components/Questions/MatrixQuestion.vue index e9b0ccc..023a80b 100644 --- a/src/views/Design/components/Questions/MatrixQuestion.vue +++ b/src/views/Design/components/Questions/MatrixQuestion.vue @@ -1,225 +1,246 @@ - diff --git a/src/views/Design/components/Questions/MatrixRadio.vue b/src/views/Design/components/Questions/MatrixRadio.vue index 84c9336..17ffb42 100644 --- a/src/views/Design/components/Questions/MatrixRadio.vue +++ b/src/views/Design/components/Questions/MatrixRadio.vue @@ -1,75 +1,19 @@ - - diff --git a/src/views/Design/components/Questions/MatrixText.vue b/src/views/Design/components/Questions/MatrixText.vue index 7307cf6..2b8f3fd 100644 --- a/src/views/Design/components/Questions/MatrixText.vue +++ b/src/views/Design/components/Questions/MatrixText.vue @@ -1,128 +1,27 @@ - - diff --git a/src/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue b/src/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue index 2d33ee7..d59d5e4 100644 --- a/src/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue +++ b/src/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue @@ -1,5 +1,5 @@