refactor(survey): 重构问卷数据管理逻辑

- 新增 clearSurveys 函数用于清空问卷数据
- 在复制问卷和删除问卷后调用 clearSurveys函数
- 在组件卸载和重置搜索时调用 clearSurveys 函数
- 优化了问卷数据的更新逻辑,解决了内容不更新的问题
- 重新添加了 .prettierrc 文件,规范代码格式
This commit is contained in:
Huangzhe
2025-05-25 13:14:15 +08:00
parent 4989bc07d7
commit 04d63eb141
4 changed files with 22 additions and 10 deletions

View File

@@ -34,7 +34,7 @@
</template> </template>
<script setup> <script setup>
import { onUnmounted, ref, watch } from 'vue'; import { onMounted, onUnmounted, ref, watch } from 'vue';
import NavSearch from '@/components/Search/Index.vue'; import NavSearch from '@/components/Search/Index.vue';
import NewSurvey from '@/views/Home/components/NewSurvey/index.vue'; import NewSurvey from '@/views/Home/components/NewSurvey/index.vue';
import EmptyContainer from '@/views/Survey/components/EmptyContainer.vue'; import EmptyContainer from '@/views/Survey/components/EmptyContainer.vue';
@@ -45,7 +45,8 @@ import {
finished, finished,
survey, survey,
requestLoading, requestLoading,
searchValue searchValue,
clearSurveys
} from '@/views/Survey/hooks/useSurveyData'; } from '@/views/Survey/hooks/useSurveyData';
import emptyImg from '@/assets/img/emptyImg.png'; import emptyImg from '@/assets/img/emptyImg.png';
@@ -69,7 +70,7 @@ const handleSearchClick = () => {
form.page = 1; form.page = 1;
form.key_word = searchValue.value; form.key_word = searchValue.value;
// 重置 survey 数据 // 重置 survey 数据
survey.value = []; clearSurveys();
// 重置 finished 状态 // 重置 finished 状态
finished.value = false; finished.value = false;
@@ -78,11 +79,16 @@ const handleSearchClick = () => {
onUnmounted(() => { onUnmounted(() => {
// 当组件卸载的时候,清空 survey 数据 // 当组件卸载的时候,清空 survey 数据
survey.value = []; clearSurveys();
// 清空搜索的字符 // 清空搜索的字符
searchValue.value = ''; searchValue.value = '';
}); });
onMounted(() => {
// 解决当没有问卷的时候,里面的内容不更新的问题
fetchSurveys(form);
});
async function handleLoadSurveys() { async function handleLoadSurveys() {
await fetchSurveys(form); await fetchSurveys(form);
form.page = form.page + 1; form.page = form.page + 1;

View File

@@ -15,7 +15,8 @@ import {
fetchSurveys, fetchSurveys,
deleteItem, deleteItem,
saveTemplate, saveTemplate,
currentSurvey currentSurvey,
clearSurveys
} from '@/views/Survey/hooks/useSurveyData'; } from '@/views/Survey/hooks/useSurveyData';
import ai from '@/assets/img/analysis/ai.svg'; import ai from '@/assets/img/analysis/ai.svg';
import { ref } from 'vue'; import { ref } from 'vue';
@@ -127,7 +128,7 @@ function copyItem(item: SurveyItem) {
if (res.data.code === 200 || res.data.code === 201) { if (res.data.code === 200 || res.data.code === 201) {
showSuccessToast('复制成功'); showSuccessToast('复制成功');
form.value.page = 1; form.value.page = 1;
survey.value = [] as any; clearSurveys();
fetchSurveys(form.value); fetchSurveys(form.value);
} else { } else {
showFailToast(res.data); showFailToast(res.data);
@@ -150,10 +151,10 @@ function copyItem(item: SurveyItem) {
<el-text style="max-width: 100px"> <el-text style="max-width: 100px">
<b v-html="survey.project_name"></b> <b v-html="survey.project_name"></b>
</el-text> </el-text>
<el-text class="wrap" v-if="survey.publish_number"> <el-text v-if="survey.publish_number" class="wrap">
{{ survey.publish_number }} {{ survey.publish_number }}
</el-text> </el-text>
<el-text class="wrap" v-if="survey.is_time" style="text-wrap: nowrap"> <el-text v-if="survey.is_time" class="wrap" style="text-wrap: nowrap">
{{ `${survey.start_time}${survey.end_time ? ' ' + survey.end_time : ''}` }} {{ `${survey.start_time}${survey.end_time ? ' ' + survey.end_time : ''}` }}
</el-text> </el-text>
</div> </div>

View File

@@ -63,7 +63,7 @@ function deleteItem(item: SurveyItem, form: any) {
showToast('删除成功!'); showToast('删除成功!');
} }
form.page = 1; form.page = 1;
survey.value = []; clearSurveys();
await fetchSurveys(form); await fetchSurveys(form);
}) })
.catch(() => { .catch(() => {
@@ -85,6 +85,10 @@ async function saveTemplate(item: SurveyItem) {
} }
} }
function clearSurveys() {
survey.value = [];
}
export { export {
fetchSurveys, fetchSurveys,
loading, loading,
@@ -96,5 +100,6 @@ export {
saveTemplate, saveTemplate,
currentSurvey, currentSurvey,
requestLoading, requestLoading,
fetchSingleSurvey fetchSingleSurvey,
clearSurveys
}; };