This commit is contained in:
2025-05-19 19:03:53 +08:00
parent ddfd747704
commit e15474a836
14 changed files with 242 additions and 66 deletions

View File

@@ -3,31 +3,24 @@ import {ref, reactive} from "vue";
import XSquareCarouselImage from "../../../components/XSquareCarouselImage.vue";
import {toPage} from "../../../utils/uils.js";
const {data} = defineProps({
data: {
type: Object,
default: null,
}
});
const current = ref(0);
const list = reactive([
{
id: 0,
name: '素材1',
},
{
id: 1,
name: '素材2',
},
{
id: 2,
name: '素材3',
},
]);
</script>
<template>
<!--领取素材-->
<view class="!flex gap-[24rpx] !mb-[28rpx]">
<view
v-for="(item,index) in list"
v-for="(item,index) in data.children.material"
@click="current=index"
:class="['tab-item', index===current?'cur':'']">
素材1
素材{{ index + 1 }}
</view>
</view>
@@ -37,7 +30,7 @@ const list = reactive([
标题:
</view>
<view class="block-info">
标题内容标题内容标题内容标题内容标题内容标题内容标题内容标题内容
{{ data.children.material[current].title }}
</view>
</view>
<view class="block">
@@ -53,7 +46,7 @@ const list = reactive([
正文:
</view>
<view class="block-info">
简介内容简介内容简介内容简介内容简介内容简介内容简介内容简介内容简介内容简介内...
{{ data.children.material[current].content }}
</view>
</view>
<view class="block">
@@ -61,7 +54,7 @@ const list = reactive([
素材:
</view>
<view class="block-info">
<x-square-carousel-image></x-square-carousel-image>
<x-square-carousel-image :list="data.children.material[current].material_arr"></x-square-carousel-image>
</view>
</view>
<view class="block">
@@ -72,10 +65,14 @@ const list = reactive([
<view>
<view>评论1我用的也是这款早tb可以购买噢~我用的也是这款早tb可以购买噢~</view>
<view class="!flex gap-[20rpx] flex-wrap">
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill" src="/static/images/test.png"></image>
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill" src="/static/images/test.png"></image>
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill" src="/static/images/test.png"></image>
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill" src="/static/images/test.png"></image>
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill"
src="/static/images/test.png"></image>
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill"
src="/static/images/test.png"></image>
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill"
src="/static/images/test.png"></image>
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill"
src="/static/images/test.png"></image>
</view>
</view>
</view>
@@ -90,7 +87,7 @@ const list = reactive([
<style scoped lang="scss">
.tab-item {
padding: 12rpx 32rpx;
padding: 12rpx 26rpx;
border-radius: 9999rpx;
background-color: #F7F8FA;
font-size: 24rpx;

View File

@@ -1,12 +1,136 @@
<script setup>
import {reactive, ref, watch} from "vue";
import XLink from "../../../components/XLink.vue";
import XUpload from "../../../components/XUpload.vue";
import XInput from "../../../components/XInput.vue";
import Api from "../../../api/index.js";
import {showToast} from "../../../utils/uils.js";
import dayjs from "dayjs";
import XCountdown from "../../../components/XCountdown.vue";
const {data} = defineProps({
data: {
type: Object,
default: null,
}
});
const content = reactive([]);
const current = ref(0);
const success = async () => {
const {msg} = await Api.system.addTaskBackfill({
id: data.children.id,
cid: current.value + 1,
content: content,
type: data.task_content[current.value].is_image,
});
showToast(msg);
}
watch(
() => [data, current],
() => {
content.push(...data.children.back[current.value].content_arr);
},
{deep: true, immediate: true}
)
</script>
<template>
<!--我的回填-->
<view class="!flex gap-[24rpx] !mb-[28rpx]">
<view
v-for="(item,index) in data.task_content"
@click="current=index"
:class="['tab-item', index===current?'cur':'']">
回填{{ index + 1 }}
</view>
</view>
<view class="block">
<view class="block-title">
回填指引:
</view>
<view class="block-info">
<x-link>查看指引</x-link>
</view>
</view>
<view class="block">
<view class="block-title">
回填时间:
</view>
<view class="block-info">
{{ data.task_content[current].start_time }} {{ data.task_content[current].end_time }}
</view>
</view>
<view class="block">
<view class="block-title">
倒计时:
</view>
<view class="block-info">
<x-countdown :time="dayjs(data.task_content[current].end_time)">
</x-countdown>
</view>
</view>
<view class="block" v-for="(v, index) in data.fb_num">
<view class="block-title">
视频1的评论区截图:
</view>
<view class="block-info">
<x-upload
@success="(e) => content[index] = e"
:files="content[index] ? [content[index]] : []"
v-if="data.task_content[current].is_image === 1">
</x-upload>
<x-input v-else v-model:model-value="content[index]" height="64rpx" placeholder="请输入内容"></x-input>
</view>
</view>
<tui-button @click="success">提交</tui-button>
</template>
<style scoped lang="scss">
.tab-item {
padding: 12rpx 26rpx;
border-radius: 9999rpx;
background-color: #F7F8FA;
font-size: 24rpx;
color: #4E5969;
transition: 500ms;
}
.cur {
background-color: #E8F3FF;
color: #165DFF;
}
.block {
display: flex;
gap: 20rpx;
margin-bottom: 20rpx;
.block-title {
flex-shrink: 0;
color: rgb(134, 144, 156);
font-size: 24rpx;
font-weight: 500;
line-height: 140%;
letter-spacing: 0;
text-align: left;
width: 160rpx;
}
.block-info {
color: rgb(78, 89, 105);
font-size: 24rpx;
font-weight: 500;
line-height: 140%;
letter-spacing: 0;
}
}
</style>

View File

@@ -17,10 +17,10 @@ const {data} = defineProps({
<view class="title">
案例概览
</view>
<view class="block items-center">
<view class="block items-center" v-if="data.case_url">
<view class="block-title">任务案例:</view>
<view class="block-info w-full overflow-hidden">
<view class="text-[#165DFF] !flex items-center gap-[10rpx]" v-if="data.case_url">
<view class="text-[#165DFF] !flex items-center gap-[10rpx]">
<image class="!size-[24rpx] flex-shrink-0" :src="linkIcon"></image>
<text class="ellipsis-1 flex-grow">
{{ data.case_url }}
@@ -47,7 +47,23 @@ const {data} = defineProps({
</view>
<view class="block">
<view class="block-title">评论区案例:</view>
<view>
<view class="test-24r text-[#4E5969]">
<view v-if="data.comment_arr">
评论1:
<text v-if="data.comment_arr.pid!==0" class="text-[#86909C]">
<image class="!size-[20rpx]" src="/static/icons/msgback.png"></image>
回复1:
</text>
{{ data.comment_arr.intro }}
</view>
<view v-for="(v, index) in data.comment_arr.children">
评论1:
<text v-if="data.comment_arr.pid!==0" class="text-[#86909C]">
<image class="!size-[20rpx]" src="/static/icons/msgback.png"></image>
回复1:
</text>
{{ data.comment_arr.intro }}
</view>
</view>
</view>
</view>

View File

@@ -86,7 +86,7 @@ onMounted(() => {
{{ dayjs(details.end_time).format('YYYY-MM-DD HH:mm') }} 前可领取
</view>
<view v-else class="goods-bh">
任务编号DF1515
任务编号{{ details.is_use === 0 ? details.code : details.children.uid }}
<x-link>复制</x-link>
</view>
</view>
@@ -98,9 +98,9 @@ onMounted(() => {
style="font-size: 24rpx">
<view>发布账号</view>
<view class="bg-[#E5E6EB] w-[5rpx] h-auto"></view>
<view>昵称: 我是大冤种</view>
<view>昵称: {{ details.children.account.nickname }}</view>
<view class="bg-[#E5E6EB] w-[5rpx] h-auto"></view>
<view>账号: 56378899</view>
<view>账号: {{ details.children.account.account }}</view>
</view>
<view class="!grid grid-cols-4 gap-[20rpx]">