feat: 优化问卷分析页面样式和功能

1. 添加VSCode拼写检查配置,添加'vant'到字典
2. 优化问卷分析页面布局,设置100%宽度
3. 使用el-text组件优化问题标题的文本显示
4. 修复问卷项操作按钮的禁用状态逻辑
This commit is contained in:
Huangzhe
2025-05-19 13:53:25 +08:00
parent d015034d97
commit 0427b82980
5 changed files with 13 additions and 12 deletions

View File

@@ -73,5 +73,8 @@
"less", "less",
"vue" "vue"
], ],
"typescript.tsdk": "node_modules\\typescript\\lib" "typescript.tsdk": "node_modules\\typescript\\lib",
"cSpell.words": [
"vant"
]
} }

View File

@@ -12,7 +12,7 @@
@load="onLoad" @load="onLoad"
> >
<div v-for="item in survey" v-if="survey.length > 0" :key="item" class="new-survey_item"> <div v-for="item in survey" v-if="survey.length > 0" :key="item" class="new-survey_item">
<survey-item :survey="item" :is-analysis="true" /> <survey-item :survey="item" :is-analysis="true" :disable-action-button="false" />
</div> </div>
<empty-container v-else /> <empty-container v-else />
</van-list> </van-list>

View File

@@ -26,6 +26,9 @@ const router = useRouter();
const emit = defineEmits(['post-analysis', 'post-surveys']); const emit = defineEmits(['post-analysis', 'post-surveys']);
const survey = defineModel<SurveyItem>('survey', { required: true }); const survey = defineModel<SurveyItem>('survey', { required: true });
const isAnalysis = defineModel('isAnalysis', { default: false, type: Boolean }); const isAnalysis = defineModel('isAnalysis', { default: false, type: Boolean });
// 禁用 action 功能
const disableActionButton = defineModel('disableActionButton', { default: false, type: Boolean });
const postAnalysis = defineModel<Function>('post-analysis'); const postAnalysis = defineModel<Function>('post-analysis');
function setImg(code: number) { function setImg(code: number) {
const imageMap: { [key: number]: string } = { const imageMap: { [key: number]: string } = {
@@ -201,15 +204,9 @@ function copyItem(item: SurveyItem) {
</el-space> </el-space>
</div> </div>
<!-- action 功能位置 --> <!-- action 功能位置 -->
<div v-if="!isAnalysis" class="survey_item_action"> <div v-if="!disableActionButton" class="survey_item_action">
<div> <div>
<el-button :disabled="survey.source === 0" @click="editItem(survey)"> 编辑 </el-button> <el-button :disabled="survey.source === 0" @click="editItem(survey)"> 编辑 </el-button>
<!-- <el-button-->
<!-- style="border: 1px solid #71b73c"-->
<!-- @click="toPreview(survey)"-->
<!-- >-->
<!-- <el-text style="color: #71b73c">预览</el-text>-->
<!-- </el-button>-->
<el-button style="border: 1px solid #71b73c" @click="toAnalysis(survey)"> <el-button style="border: 1px solid #71b73c" @click="toAnalysis(survey)">
<el-text style="color: #71b73c">统计</el-text> <el-text style="color: #71b73c">统计</el-text>
</el-button> </el-button>

View File

@@ -43,6 +43,7 @@ useFetchAnalysis(sn.value);
<template #extra> <template #extra>
<survey-item <survey-item
:is-analysis="disableInsight" :is-analysis="disableInsight"
:disable-action-button="true"
:survey="currentSurvey as SurveyItem" :survey="currentSurvey as SurveyItem"
@post-analysis="postAnalysis(sn as string)" @post-analysis="postAnalysis(sn as string)"
/> />
@@ -77,7 +78,7 @@ useFetchAnalysis(sn.value);
.survey-container { .survey-container {
padding: theme.$gap; padding: theme.$gap;
width: 100%; // width: 100%;
.survey-item, .survey-item,
.ai-insight, .ai-insight,

View File

@@ -1,12 +1,12 @@
<template> <template>
<div> <div style="width: 100%">
<section v-for="analysis in questionAnalysis" :key="analysis.stem" class="mt10"> <section v-for="analysis in questionAnalysis" :key="analysis.stem" class="mt10">
<!-- {{ analysis }} --> <!-- {{ analysis }} -->
<!-- 问题标题 --> <!-- 问题标题 -->
<el-tag type="success" size="small">{{ <el-tag type="success" size="small">{{
questionTypeMap.get(analysis.question_type as number) questionTypeMap.get(analysis.question_type as number)
}}</el-tag> }}</el-tag>
{{ analysis.stem }} <el-text>{{ analysis.stem }}</el-text>
<!-- 问题图表部分 --> <!-- 问题图表部分 -->
<chart-msg <chart-msg