fix(CheckinDetailPage): 修复作业描述显示逻辑并优化富文本样式
重构作业描述显示逻辑,根据选中的子任务显示对应的描述或主任务描述 优化富文本内容的样式,确保图片、表格等元素在容器内正确显示且不溢出
Showing
1 changed file
with
46 additions
and
6 deletions
| ... | @@ -3,10 +3,10 @@ | ... | @@ -3,10 +3,10 @@ |
| 3 | <!-- 页面内容 --> | 3 | <!-- 页面内容 --> |
| 4 | <div class="page-content"> | 4 | <div class="page-content"> |
| 5 | <!-- 作业描述 --> | 5 | <!-- 作业描述 --> |
| 6 | - <div v-if="taskDetail.note" class="section-wrapper"> | 6 | + <div class="section-wrapper"> |
| 7 | <div class="section-title">作业描述</div> | 7 | <div class="section-title">作业描述</div> |
| 8 | <div class="section-content"> | 8 | <div class="section-content"> |
| 9 | - <div v-if="taskDetail.note" class="description-text" v-html="taskDetail.note"> | 9 | + <div v-if="displayTaskNote" class="description-text" v-html="displayTaskNote"> |
| 10 | </div> | 10 | </div> |
| 11 | <div v-else class="no-description"> | 11 | <div v-else class="no-description"> |
| 12 | 暂无作业描述 | 12 | 暂无作业描述 |
| ... | @@ -218,6 +218,16 @@ const dynamicFieldText = ref('感恩') | ... | @@ -218,6 +218,16 @@ const dynamicFieldText = ref('感恩') |
| 218 | // 任务详情数据 | 218 | // 任务详情数据 |
| 219 | const taskDetail = ref({}) | 219 | const taskDetail = ref({}) |
| 220 | 220 | ||
| 221 | +// 显示的作业描述 | ||
| 222 | +const displayTaskNote = computed(() => { | ||
| 223 | + const selected_subtask_id = selectedTaskValue.value?.[0] | ||
| 224 | + if (selected_subtask_id) { | ||
| 225 | + const option = taskOptions.value.find(o => o.value === selected_subtask_id) | ||
| 226 | + return option?.note || taskDetail.value?.note || '' | ||
| 227 | + } | ||
| 228 | + return taskDetail.value?.note || '' | ||
| 229 | +}) | ||
| 230 | + | ||
| 221 | // 打卡类型 | 231 | // 打卡类型 |
| 222 | const taskType = computed(() => route.query.task_type) | 232 | const taskType = computed(() => route.query.task_type) |
| 223 | 233 | ||
| ... | @@ -951,6 +961,7 @@ onMounted(async () => { | ... | @@ -951,6 +961,7 @@ onMounted(async () => { |
| 951 | taskOptions.value = [...subtask_list.data.map(item => ({ | 961 | taskOptions.value = [...subtask_list.data.map(item => ({ |
| 952 | text: item.is_makeup ? '补卡:' + item.title : item.title, | 962 | text: item.is_makeup ? '补卡:' + item.title : item.title, |
| 953 | value: item.id, | 963 | value: item.id, |
| 964 | + note: item.note, // 作业描述 | ||
| 954 | is_makeup: item.is_makeup, // 是否为补录 | 965 | is_makeup: item.is_makeup, // 是否为补录 |
| 955 | field_list: item.field_list, // 动态字段列表 | 966 | field_list: item.field_list, // 动态字段列表 |
| 956 | person_type: item.person_type, // 打卡对象类型 | 967 | person_type: item.person_type, // 打卡对象类型 |
| ... | @@ -1040,18 +1051,47 @@ onMounted(async () => { | ... | @@ -1040,18 +1051,47 @@ onMounted(async () => { |
| 1040 | 1051 | ||
| 1041 | .section-content { | 1052 | .section-content { |
| 1042 | padding: 1rem; | 1053 | padding: 1rem; |
| 1054 | + overflow: hidden; | ||
| 1043 | } | 1055 | } |
| 1044 | 1056 | ||
| 1045 | .description-text { | 1057 | .description-text { |
| 1046 | color: #666; | 1058 | color: #666; |
| 1047 | line-height: 1.6; | 1059 | line-height: 1.6; |
| 1048 | font-size: 0.95rem; | 1060 | font-size: 0.95rem; |
| 1061 | + word-break: break-word; | ||
| 1062 | + overflow-wrap: break-word; | ||
| 1063 | + width: 100%; | ||
| 1064 | + box-sizing: border-box; | ||
| 1065 | + overflow: hidden; | ||
| 1049 | 1066 | ||
| 1067 | + :deep(*) { | ||
| 1068 | + max-width: 100% !important; | ||
| 1069 | + box-sizing: border-box; | ||
| 1070 | + } | ||
| 1050 | 1071 | ||
| 1051 | - :deep(&) { | 1072 | + :deep(img) { |
| 1052 | - img { | 1073 | + max-width: 100% !important; |
| 1053 | - width: 100%; | 1074 | + height: auto; |
| 1054 | - } | 1075 | + display: block; |
| 1076 | + } | ||
| 1077 | + | ||
| 1078 | + :deep(p) { | ||
| 1079 | + margin: 0.5rem 0; | ||
| 1080 | + } | ||
| 1081 | + | ||
| 1082 | + :deep(table) { | ||
| 1083 | + max-width: 100% !important; | ||
| 1084 | + border-collapse: collapse; | ||
| 1085 | + overflow-x: auto; | ||
| 1086 | + display: table; | ||
| 1087 | + width: 100%; | ||
| 1088 | + } | ||
| 1089 | + | ||
| 1090 | + :deep(pre) { | ||
| 1091 | + max-width: 100% !important; | ||
| 1092 | + overflow-x: auto; | ||
| 1093 | + white-space: pre-wrap; | ||
| 1094 | + word-wrap: break-word; | ||
| 1055 | } | 1095 | } |
| 1056 | 1096 | ||
| 1057 | // 富文本内容样式 | 1097 | // 富文本内容样式 | ... | ... |
-
Please register or login to post a comment