|
@@ -28,11 +28,6 @@
|
|
|
<div class="tag-item">{{ taskInfo.auditTimeout ?? 48 }}{{ $t('task.hoursAudit') }}</div>
|
|
<div class="tag-item">{{ taskInfo.auditTimeout ?? 48 }}{{ $t('task.hoursAudit') }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- <!-- 任务简介 -->
|
|
|
|
|
- <div class="task-intro" v-if="taskInfo.description">
|
|
|
|
|
- <span class="intro-label">{{ $t('task.taskDescription') }}:</span>
|
|
|
|
|
- <span class="intro-text">{{ taskInfo.description }}</span>
|
|
|
|
|
- </div>
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 审核标准 -->
|
|
<!-- 审核标准 -->
|
|
@@ -87,6 +82,13 @@
|
|
|
</div>
|
|
</div>
|
|
|
<div
|
|
<div
|
|
|
class="tab-item"
|
|
class="tab-item"
|
|
|
|
|
+ :class="{ active: activeTab === 'intro' }"
|
|
|
|
|
+ @click="activeTab = 'intro'"
|
|
|
|
|
+ >
|
|
|
|
|
+ {{ $t('task.taskIntro') }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="tab-item"
|
|
|
:class="{ active: activeTab === 'examples' }"
|
|
:class="{ active: activeTab === 'examples' }"
|
|
|
@click="activeTab = 'examples'"
|
|
@click="activeTab = 'examples'"
|
|
|
>
|
|
>
|
|
@@ -94,6 +96,12 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
+ <!-- 任务简介内容 -->
|
|
|
|
|
+ <div class="tab-content" v-show="activeTab === 'intro'">
|
|
|
|
|
+ <div class="intro-content" v-if="taskInfo?.description" v-html="taskInfo.description"></div>
|
|
|
|
|
+ <div class="empty-tip" v-else>{{ $t('common.noData') }}</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
<!-- 任务步骤内容 -->
|
|
<!-- 任务步骤内容 -->
|
|
|
<div class="tab-content" v-show="activeTab === 'steps'">
|
|
<div class="tab-content" v-show="activeTab === 'steps'">
|
|
|
<div class="step-list" v-if="stepList?.length">
|
|
<div class="step-list" v-if="stepList?.length">
|
|
@@ -212,9 +220,10 @@
|
|
|
v-model:show="showReject"
|
|
v-model:show="showReject"
|
|
|
:title="$t('task.viewReason')"
|
|
:title="$t('task.viewReason')"
|
|
|
:show-cancel-button="false"
|
|
:show-cancel-button="false"
|
|
|
|
|
+ :confirm-button-text="$t('common.confirm')"
|
|
|
>
|
|
>
|
|
|
<div class="reject-content">
|
|
<div class="reject-content">
|
|
|
- {{ applyInfo?.rejectReason || 'No reason provided' }}
|
|
|
|
|
|
|
+ {{ applyInfo?.auditRemark || $t('task.noReasonProvided') }}
|
|
|
</div>
|
|
</div>
|
|
|
</van-dialog>
|
|
</van-dialog>
|
|
|
|
|
|
|
@@ -259,7 +268,7 @@ const applyInfo = ref<any>(null);
|
|
|
const claiming = ref(false);
|
|
const claiming = ref(false);
|
|
|
const showReject = ref(false);
|
|
const showReject = ref(false);
|
|
|
const showGuide = ref(false);
|
|
const showGuide = ref(false);
|
|
|
-const activeTab = ref<'steps' | 'examples'>('steps');
|
|
|
|
|
|
|
+const activeTab = ref<'steps' | 'intro' | 'examples'>('steps');
|
|
|
|
|
|
|
|
// 格式化奖励金额(后端返回的是分,需要转换为元)
|
|
// 格式化奖励金额(后端返回的是分,需要转换为元)
|
|
|
const formatReward = (amount: number | string | undefined) => {
|
|
const formatReward = (amount: number | string | undefined) => {
|
|
@@ -668,6 +677,34 @@ onMounted(() => {
|
|
|
font-size: min(3.733vw, 17.92px);
|
|
font-size: min(3.733vw, 17.92px);
|
|
|
padding: min(8vw, 38.4px) 0;
|
|
padding: min(8vw, 38.4px) 0;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ .intro-content {
|
|
|
|
|
+ padding: min(4vw, 19.2px);
|
|
|
|
|
+ font-size: min(3.733vw, 17.92px);
|
|
|
|
|
+ color: rgba(255, 255, 255, 0.85);
|
|
|
|
|
+ line-height: 1.8;
|
|
|
|
|
+ word-break: break-word;
|
|
|
|
|
+
|
|
|
|
|
+ // 富文本图片样式
|
|
|
|
|
+ :deep(img) {
|
|
|
|
|
+ max-width: 100%;
|
|
|
|
|
+ height: auto;
|
|
|
|
|
+ border-radius: min(2.133vw, 10.24px);
|
|
|
|
|
+ margin: min(2.667vw, 12.8px) 0;
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 富文本段落
|
|
|
|
|
+ :deep(p) {
|
|
|
|
|
+ margin: min(2.133vw, 10.24px) 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 富文本链接
|
|
|
|
|
+ :deep(a) {
|
|
|
|
|
+ color: #ffc300;
|
|
|
|
|
+ text-decoration: underline;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 任务简介
|
|
// 任务简介
|