|
@@ -13,7 +13,7 @@ import {
|
|
|
Tag,
|
|
|
showToast
|
|
|
} from 'vant';
|
|
|
-import { defineComponent, onMounted, reactive, watch } from 'vue';
|
|
|
+import { defineComponent, onMounted, reactive, ref, watch } from 'vue';
|
|
|
import styles from './detail.module.less';
|
|
|
import iconTimer from '@/common/images/icon-timer.png';
|
|
|
import iconTeacher from '@/common/images/icon-teacher-default.png';
|
|
@@ -84,6 +84,8 @@ export default defineComponent({
|
|
|
list: []
|
|
|
});
|
|
|
|
|
|
+ const list = ref([] as any[]);
|
|
|
+
|
|
|
const onRefresh = () => {
|
|
|
forms.params.page = 1;
|
|
|
getList();
|
|
@@ -100,11 +102,50 @@ export default defineComponent({
|
|
|
}
|
|
|
);
|
|
|
const result = data || {};
|
|
|
+
|
|
|
+ // 格式化数据
|
|
|
+ const rows = result.rows || [];
|
|
|
+
|
|
|
+ rows.forEach((row: any) => {
|
|
|
+ const attachmentUrlList = row.attachmentUrl
|
|
|
+ ? row.attachmentUrl.split(',')
|
|
|
+ : [];
|
|
|
+ const problemTypeList = row.problemType
|
|
|
+ ? row.problemType.split(',')
|
|
|
+ : [];
|
|
|
+
|
|
|
+ row.problemTypeList = problemTypeList;
|
|
|
+ // 级别
|
|
|
+ row.submitEvaluateStatus = row.evaluateStatus || '';
|
|
|
+ // 问题类型
|
|
|
+ row.submitProblemType = problemTypeList || [];
|
|
|
+ row.submitProblemDesc = row.problemDesc || '';
|
|
|
+ // 图片和视屏
|
|
|
+ row.submitVideoList = [];
|
|
|
+ row.submitImgList = [];
|
|
|
+ attachmentUrlList.forEach((url: any) => {
|
|
|
+ // 判断是否是图片
|
|
|
+ if (checkFile(url, 'image')) {
|
|
|
+ row.submitImgList.push(url);
|
|
|
+ } else {
|
|
|
+ row.submitVideoList.push(url);
|
|
|
+ }
|
|
|
+ // 判断是否是视频
|
|
|
+ });
|
|
|
+
|
|
|
+ row.attachmentUrlList = attachmentUrlList || [];
|
|
|
+
|
|
|
+ // 判断是否评价,如果有评价则直接显示评价内容
|
|
|
+ if (!row.evaluateFlag) {
|
|
|
+ row.isEdit = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
// 判断是否有数据
|
|
|
if (forms.listState.refreshing) {
|
|
|
- forms.list = result.rows || [];
|
|
|
+ list.value = rows || [];
|
|
|
} else {
|
|
|
- forms.list = forms.list.concat(result.rows || []);
|
|
|
+ list.value = list.value.concat(rows || []);
|
|
|
}
|
|
|
|
|
|
forms.listState.finished = result.pageNo >= result.totalPage;
|
|
@@ -112,7 +153,7 @@ export default defineComponent({
|
|
|
} catch {
|
|
|
forms.listState.finished = true;
|
|
|
} finally {
|
|
|
- forms.listState.dataShow = forms.list.length > 0;
|
|
|
+ forms.listState.dataShow = list.value.length > 0;
|
|
|
forms.listState.refreshing = false;
|
|
|
forms.listState.loading = false;
|
|
|
forms.isClick = false;
|
|
@@ -174,7 +215,7 @@ export default defineComponent({
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- forms.list = [];
|
|
|
+ list.value = [];
|
|
|
onRefresh();
|
|
|
} catch {
|
|
|
//
|
|
@@ -215,7 +256,7 @@ export default defineComponent({
|
|
|
forms.params.evaluateStatus = props.evaluateStatus;
|
|
|
forms.params.problemType = props.problemType;
|
|
|
forms.params.courseType = props.courseType;
|
|
|
- forms.list = [];
|
|
|
+ list.value = [];
|
|
|
onRefresh();
|
|
|
}
|
|
|
);
|
|
@@ -236,36 +277,7 @@ export default defineComponent({
|
|
|
offset={100}
|
|
|
immediateCheck={false}>
|
|
|
{forms.listState.dataShow ? (
|
|
|
- forms.list.map((item: any) => {
|
|
|
- const attachmentUrlList = item.attachmentUrl
|
|
|
- ? item.attachmentUrl.split(',')
|
|
|
- : [];
|
|
|
- const problemTypeList = item.problemType
|
|
|
- ? item.problemType.split(',')
|
|
|
- : [];
|
|
|
-
|
|
|
- // 级别
|
|
|
- item.submitEvaluateStatus = item.evaluateStatus || '';
|
|
|
- // 问题类型
|
|
|
- item.submitProblemType = problemTypeList || [];
|
|
|
- item.submitProblemDesc = item.problemDesc || '';
|
|
|
- // 图片和视屏
|
|
|
- item.submitVideoList = [];
|
|
|
- item.submitImgList = [];
|
|
|
- attachmentUrlList.forEach((url: any) => {
|
|
|
- // 判断是否是图片
|
|
|
- if (checkFile(url, 'image')) {
|
|
|
- item.submitImgList.push(url);
|
|
|
- } else {
|
|
|
- item.submitVideoList.push(url);
|
|
|
- }
|
|
|
- // 判断是否是视频
|
|
|
- });
|
|
|
-
|
|
|
- // 判断是否评价,如果有评价则直接显示评价内容
|
|
|
- if (!item.evaluateFlag) {
|
|
|
- item.isEdit = true;
|
|
|
- }
|
|
|
+ list.value.map((item: any) => {
|
|
|
return (
|
|
|
<CellGroup inset class={styles.cellGroup}>
|
|
|
<Cell center class={styles.timerCell} border={false}>
|
|
@@ -336,7 +348,7 @@ export default defineComponent({
|
|
|
),
|
|
|
value: () => (
|
|
|
<div class={styles.photoList}>
|
|
|
- {attachmentUrlList.map(
|
|
|
+ {item.attachmentUrlList.map(
|
|
|
(file: string, index: number) =>
|
|
|
index < 3 && (
|
|
|
<div
|
|
@@ -344,7 +356,10 @@ export default defineComponent({
|
|
|
onClick={(e: MouseEvent) => {
|
|
|
e.stopPropagation();
|
|
|
e.preventDefault();
|
|
|
- onShowPreView(attachmentUrlList, index);
|
|
|
+ onShowPreView(
|
|
|
+ item.attachmentUrlList,
|
|
|
+ index
|
|
|
+ );
|
|
|
}}>
|
|
|
{checkFile(file, 'image') ? (
|
|
|
<Image
|
|
@@ -360,10 +375,10 @@ export default defineComponent({
|
|
|
)}
|
|
|
|
|
|
{/* 判断是否大于三个 */}
|
|
|
- {attachmentUrlList.length > 3 &&
|
|
|
+ {item.attachmentUrlList.length > 3 &&
|
|
|
index === 2 ? (
|
|
|
<div class={styles.photoMore}>
|
|
|
- +{attachmentUrlList.length - 3}
|
|
|
+ +{item.attachmentUrlList.length - 3}
|
|
|
</div>
|
|
|
) : (
|
|
|
''
|
|
@@ -377,12 +392,13 @@ export default defineComponent({
|
|
|
</Cell>
|
|
|
|
|
|
{/* 展示结果 */}
|
|
|
- {(problemTypeList.length > 0 || item.problemDesc) &&
|
|
|
+ {(item.submitProblemType.length > 0 ||
|
|
|
+ item.problemDesc) &&
|
|
|
!item.isEdit ? (
|
|
|
<Cell center class={styles.resultCell}>
|
|
|
- {problemTypeList.length > 0 ? (
|
|
|
+ {item.problemTypeList.length > 0 ? (
|
|
|
<div class={styles.typeGroup}>
|
|
|
- {problemTypeList.map((type: string) => (
|
|
|
+ {item.problemTypeList.map((type: string) => (
|
|
|
<Tag type="primary" plain>
|
|
|
{problemType[type]}
|
|
|
</Tag>
|