|
|
@@ -48,10 +48,16 @@
|
|
|
|
|
|
<!-- 底部区域:操作按钮 -->
|
|
|
<div class="card_footer">
|
|
|
- <el-button :class="[Number(quesitonnaire.useStatus) === 1 ? 'is-disabled' : 'button_background']">编辑</el-button>
|
|
|
- <el-button class="button_border">预览</el-button>
|
|
|
- <el-button class="button_refresh">复制</el-button>
|
|
|
- <el-button :class="[Number(quesitonnaire.useStatus) === 1 ? 'is-disabled' : 'delete_button_border']">删除</el-button>
|
|
|
+ <el-button
|
|
|
+ :class="[Number(quesitonnaire.useStatus) === 1 ? 'is-disabled' : 'button_background']"
|
|
|
+ @click="Number(quesitonnaire.useStatus) === 1 ? '' : GoToCreateQuestionnaire(quesitonnaire)"
|
|
|
+ >编辑</el-button>
|
|
|
+ <el-button class="button_border" @click="GoToPreviewQuestionnaire(quesitonnaire)">预览</el-button>
|
|
|
+ <el-button class="button_refresh" @click="CopyQuestionnaire(quesitonnaire)">复制</el-button>
|
|
|
+ <el-button
|
|
|
+ :class="[Number(quesitonnaire.useStatus) === 1 ? 'is-disabled' : 'delete_button_border']"
|
|
|
+ @click="Number(quesitonnaire.useStatus) === 1 ? '' : OpenDeleteDialog(quesitonnaire)"
|
|
|
+ >删除</el-button>
|
|
|
</div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
@@ -74,16 +80,29 @@
|
|
|
|
|
|
<template #operation="{row}">
|
|
|
<div class="table_row_option">
|
|
|
- <span :class="[Number(row.useStatus) === 1 ? 'editor_disable' : 'el_button_editor']">编辑</span>
|
|
|
- <span class="el_button_editor">预览</span>
|
|
|
- <span class="el_button_editor">复制</span>
|
|
|
- <span :class="[Number(row.useStatus) === 1 ? 'editor_disable' : 'el_button_delete']">删除</span>
|
|
|
+ <span
|
|
|
+ :class="[Number(row.useStatus) === 1 ? 'editor_disable' : 'el_button_editor']"
|
|
|
+ @click="Number(row.useStatus) === 1 ? '' : GoToCreateQuestionnaire(row)"
|
|
|
+ >编辑</span>
|
|
|
+ <span class="el_button_editor" @click="GoToPreviewQuestionnaire(row)">预览</span>
|
|
|
+ <span class="el_button_editor" @click="CopyQuestionnaire(row)">复制</span>
|
|
|
+ <span
|
|
|
+ :class="[Number(row.useStatus) === 1 ? 'editor_disable' : 'el_button_delete']"
|
|
|
+ @click="Number(row.useStatus) === 1 ? '' : OpenDeleteDialog(row)"
|
|
|
+ >删除</span>
|
|
|
</div>
|
|
|
</template>
|
|
|
</Table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <Dialog
|
|
|
+ :visible="dialogVisible"
|
|
|
+ :submitLoading="dialogSubmitLoading"
|
|
|
+ @close="HandleDialogClose"
|
|
|
+ @confirm="HandleDialogConfirm"
|
|
|
+ ></Dialog>
|
|
|
|
|
|
|
|
|
- </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
@@ -94,18 +113,20 @@ import Table from '@/baseComponents/Table.vue';
|
|
|
import TabSearch from '@/baseComponents/TabSearch.vue';
|
|
|
import TableRowStatus from '@/baseComponents/TableRowStatus.vue';
|
|
|
|
|
|
-import { getQuestionnaireListApi} from '@/api/surveyManagement'
|
|
|
+import { getQuestionnaireListApi , copyQuestionnaireApi,deleteQuestionnaireApi} from '@/api/surveyManagement'
|
|
|
|
|
|
|
|
|
import { viewModeTabList } from './tabSearch'; //视图项配置
|
|
|
import { questionnaireTableColumns } from './table';
|
|
|
import {useStatusConvert} from './useStatus'
|
|
|
+import { ElMessage } from 'element-plus';
|
|
|
+import Dialog from '@/baseComponents/Dialog.vue';
|
|
|
interface QuestionnaireItm {
|
|
|
id:Number,
|
|
|
- assessmentTitle:String,
|
|
|
- assessmentScore:Number|String,
|
|
|
- teacherName:String,
|
|
|
- createdAt:String,
|
|
|
+ assessmentTitle:String, //标题
|
|
|
+ assessmentScore:Number|String, //总分
|
|
|
+ teacherName:String, //创建人
|
|
|
+ createdAt:String, //创建时间
|
|
|
useStatus:Number, //1 已使用 0 未使用
|
|
|
}
|
|
|
const router = useRouter()
|
|
|
@@ -116,30 +137,15 @@ const HandleTabChage = (val)=>{
|
|
|
defaultViewMode.value = val
|
|
|
}
|
|
|
|
|
|
-// 2. 跳转创建问卷
|
|
|
-const GoToCreateQuestionnaire = ()=>{
|
|
|
- router.push('/main/createQuestionnaire')
|
|
|
-}
|
|
|
|
|
|
-//3. 问卷列表
|
|
|
+
|
|
|
+//. 问卷列表
|
|
|
const currentPage = ref(1)
|
|
|
const totalNum = ref(0)
|
|
|
const pageSize = ref(20)
|
|
|
-const questionnaireList = ref<QuestionnaireItm[]>([
|
|
|
- {
|
|
|
- id:1,
|
|
|
- assessmentTitle: "作业量满意度问卷",
|
|
|
- assessmentScore: 100,
|
|
|
- teacherName: "管理员",
|
|
|
- createdAt: "2024-10-08 16:00",
|
|
|
- useStatus: 1 // 未使用
|
|
|
- },
|
|
|
-
|
|
|
-
|
|
|
-]);
|
|
|
+const questionnaireList = ref<QuestionnaireItm[]>([]);
|
|
|
|
|
|
-
|
|
|
-onMounted(async()=>{
|
|
|
+const GetQuestionnaireList = async ()=>{
|
|
|
let params = {
|
|
|
pageNum:currentPage.value,
|
|
|
pageSize: pageSize.value
|
|
|
@@ -148,14 +154,70 @@ onMounted(async()=>{
|
|
|
|
|
|
if(res.code == 200){
|
|
|
questionnaireList.value = res.data.records
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
+
|
|
|
+// 2. 跳转创建问卷 /修改文件
|
|
|
+const GoToCreateQuestionnaire = (row?:any)=>{
|
|
|
+ if(row.id){
|
|
|
+ router.push(`/main/createQuestionnaire?id=${row.id}`)
|
|
|
+ }else{
|
|
|
+ router.push('/main/createQuestionnaire')
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 模拟数据
|
|
|
- */
|
|
|
- // questionnaireList.value = JSON.parse(localStorage.getItem('questionnaireList') || '[]')
|
|
|
+}
|
|
|
+
|
|
|
+// 预览问卷
|
|
|
+const GoToPreviewQuestionnaire = (row)=>{
|
|
|
+ router.push(`/main/previewQuestionnaire?id=${row.id}`)
|
|
|
+}
|
|
|
+
|
|
|
+// 复制问卷
|
|
|
+const CopyQuestionnaire = async (row)=>{
|
|
|
+ let res = await copyQuestionnaireApi(row.id)
|
|
|
+ if(res?.code == 200){
|
|
|
+ ElMessage.success(res?.msg)
|
|
|
+ await GetQuestionnaireList()
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// 删除问卷
|
|
|
+const dialogVisible= ref(false)
|
|
|
+const dialogSubmitLoading = ref(false)
|
|
|
+const currentOperationRow = ref()
|
|
|
+// 打开删除弹窗
|
|
|
+const OpenDeleteDialog = (row)=>{
|
|
|
+ dialogVisible.value = true
|
|
|
+ currentOperationRow.value = row
|
|
|
+}
|
|
|
+// 关闭删除弹窗
|
|
|
+const HandleDialogClose = ()=>{
|
|
|
+ dialogVisible.value = false
|
|
|
+ currentOperationRow.value = null
|
|
|
+ dialogSubmitLoading.value = false
|
|
|
+}
|
|
|
+// 确认删除操作
|
|
|
+const HandleDialogConfirm = async ()=>{
|
|
|
+ dialogSubmitLoading.value = true
|
|
|
+ let res = undefined
|
|
|
+ try{
|
|
|
+ res = await deleteQuestionnaireApi(currentOperationRow.value.id)
|
|
|
+ }catch{}
|
|
|
+ if(res?.code == 200){
|
|
|
+ ElMessage.success(res?.msg)
|
|
|
+ HandleDialogClose()
|
|
|
+ await GetQuestionnaireList()
|
|
|
+ }else{
|
|
|
+ dialogSubmitLoading.value = false
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+onMounted(async()=>{
|
|
|
+ await GetQuestionnaireList()
|
|
|
})
|
|
|
|
|
|
|