update
This commit is contained in:
@@ -26,6 +26,9 @@ const {data} = defineProps({
|
|||||||
<Text class="text-[#165DFF]">{{ dayjs(data.time).format('MM-DD-HH:mm') }}</Text>
|
<Text class="text-[#165DFF]">{{ dayjs(data.time).format('MM-DD-HH:mm') }}</Text>
|
||||||
后可开始回填
|
后可开始回填
|
||||||
</view>
|
</view>
|
||||||
|
<view v-else-if="data.status === -1" class="text-[rgb(78,89,105)]" style="font-size: 24rpx">
|
||||||
|
已失效
|
||||||
|
</view>
|
||||||
<x-countdown v-else :time="dayjs(data.time)">
|
<x-countdown v-else :time="dayjs(data.time)">
|
||||||
<view style="font-size: 24rpx;font-weight: 400;" class="text-[rgb(78,89,105)]">审核倒计时:</view>
|
<view style="font-size: 24rpx;font-weight: 400;" class="text-[rgb(78,89,105)]">审核倒计时:</view>
|
||||||
</x-countdown>
|
</x-countdown>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {ref} from 'vue';
|
import {ref} from 'vue';
|
||||||
|
|
||||||
const {src, list, imageClass} = defineProps({
|
const {src, list, imageClass, sy} = defineProps({
|
||||||
src: {
|
src: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "",
|
default: "",
|
||||||
@@ -17,6 +17,10 @@ const {src, list, imageClass} = defineProps({
|
|||||||
imageClass: {
|
imageClass: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: ''
|
||||||
|
},
|
||||||
|
sy: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,33 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import testIcon from '../static/images/test.png';
|
import testIcon from '../static/images/test.png';
|
||||||
|
import XImage from "./XImage.vue";
|
||||||
|
import ICON from "../static/icons/水印_素材案例.png";
|
||||||
|
|
||||||
const {list} = defineProps({
|
const {list, showSY} = defineProps({
|
||||||
list: {
|
list: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: [
|
default: [
|
||||||
testIcon, testIcon, testIcon, testIcon
|
testIcon, testIcon, testIcon, testIcon
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
showSY: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<swiper class="!w-[160rpx] !h-[160rpx] !aspect-square" indicator-dots>
|
<view class="relative">
|
||||||
<swiper-item v-for="v in list">
|
<x-image class="!w-[160rpx] !h-[160rpx]" mode="aspectFill" :src="list[0]" :list="list"></x-image>
|
||||||
<image class="!w-full !h-full" mode="aspectFill" :src="v"></image>
|
|
||||||
</swiper-item>
|
<image v-if="showSY" class="!size-full !absolute left-0 top-0" :src="ICON" mode="aspectFill"></image>
|
||||||
</swiper>
|
|
||||||
|
<view class="!flex absolute left-1/2 -translate-x-1/2 bottom-[20rpx] z-10 gap-[8rpx]">
|
||||||
|
<view v-for="(_v, index) in list"
|
||||||
|
:class="[`rounded-[50%] !size-[12rpx] ${index === 0 ? 'bg-[rgba(255,255,255,1)]' : 'bg-[rgba(255,255,255,.67)]'}`]"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import {toPage} from "../../utils/uils.js";
|
|||||||
import AddCustomerServiceModal from "../../components/AddCustomerServiceModal.vue";
|
import AddCustomerServiceModal from "../../components/AddCustomerServiceModal.vue";
|
||||||
import OpenTypeFun from "../../components/OpenTypeFun.js";
|
import OpenTypeFun from "../../components/OpenTypeFun.js";
|
||||||
import XNoticeBar from "../../components/XNoticeBar.vue";
|
import XNoticeBar from "../../components/XNoticeBar.vue";
|
||||||
|
import {onShow} from "@dcloudio/uni-app";
|
||||||
|
|
||||||
const showAddCustomer = ref(false);
|
const showAddCustomer = ref(false);
|
||||||
const textContent = ref(null);
|
const textContent = ref(null);
|
||||||
@@ -82,12 +83,17 @@ const vo = reactive({
|
|||||||
|
|
||||||
const {loading, pagination, initFetchData} = useTableQuery({
|
const {loading, pagination, initFetchData} = useTableQuery({
|
||||||
api: Api.system.getTask,
|
api: Api.system.getTask,
|
||||||
|
immediate: false,
|
||||||
parameter: po,
|
parameter: po,
|
||||||
callback: (data) => {
|
callback: (data) => {
|
||||||
Object.assign(vo, data);
|
Object.assign(vo, data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
onShow(() => {
|
||||||
|
initFetchData();
|
||||||
|
});
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
Api.system.getAdvList({
|
Api.system.getAdvList({
|
||||||
position: 1,
|
position: 1,
|
||||||
|
|||||||
@@ -1,16 +1,22 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {ref, reactive} from "vue";
|
import {ref, computed} from "vue";
|
||||||
import XSquareCarouselImage from "../../../components/XSquareCarouselImage.vue";
|
import XSquareCarouselImage from "../../../components/XSquareCarouselImage.vue";
|
||||||
import {toPage, toWXMiniApp} from "../../../utils/uils.js";
|
import {toWXMiniApp} from "../../../utils/uils.js";
|
||||||
|
|
||||||
const {data} = defineProps({
|
const {data, home} = defineProps({
|
||||||
data: {
|
data: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: null,
|
default: null,
|
||||||
|
},
|
||||||
|
home: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const current = ref(0);
|
const current = ref(0);
|
||||||
|
|
||||||
|
const list = computed(() => data.children.material[current.value].comment?.flatMap(v => v.children ? [v, ...v.children] : [v]));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -38,7 +44,7 @@ const current = ref(0);
|
|||||||
话题:
|
话题:
|
||||||
</view>
|
</view>
|
||||||
<view class="block-info">
|
<view class="block-info">
|
||||||
#话题1 #话题2 #话题3 #话题4 #话题5
|
{{ data.children.material[current].tags_arr.map(item => `#${item}`).join(' ') }}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="block">
|
<view class="block">
|
||||||
@@ -54,7 +60,8 @@ const current = ref(0);
|
|||||||
素材:
|
素材:
|
||||||
</view>
|
</view>
|
||||||
<view class="block-info">
|
<view class="block-info">
|
||||||
<x-square-carousel-image :list="data.children.material[current].material_arr"></x-square-carousel-image>
|
<x-square-carousel-image :list="data.children.material[current].material_arr"
|
||||||
|
:show-s-y="home"></x-square-carousel-image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="block">
|
<view class="block">
|
||||||
@@ -62,17 +69,18 @@ const current = ref(0);
|
|||||||
评论区案例:
|
评论区案例:
|
||||||
</view>
|
</view>
|
||||||
<view class="block-info">
|
<view class="block-info">
|
||||||
|
<view v-for="(v, index) in list">
|
||||||
<view>
|
<view>
|
||||||
<view>评论1:我用的也是这款,早tb可以购买噢~我用的也是这款,早tb可以购买噢~</view>
|
评论{{ index + 1 }}:
|
||||||
<view class="!flex gap-[20rpx] flex-wrap">
|
<text v-if="v.pid" class="text-[rgba(134,144,156)]">回复{{
|
||||||
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill"
|
list.findIndex(k => k.pid === v.pid)
|
||||||
src="/static/images/test.png"></image>
|
}}
|
||||||
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill"
|
</text>
|
||||||
src="/static/images/test.png"></image>
|
{{ v.intro }}
|
||||||
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill"
|
</view>
|
||||||
src="/static/images/test.png"></image>
|
<view class="!flex gap-[20rpx] flex-wrap !my-[10rpx]">
|
||||||
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill"
|
<image v-for="k in v.image_arr" class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill"
|
||||||
src="/static/images/test.png"></image>
|
:src="k"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {defineEmits, reactive, ref, watch} from "vue";
|
import {defineEmits, reactive, ref, watch, onMounted, nextTick} from "vue";
|
||||||
import XLink from "../../../components/XLink.vue";
|
import XLink from "../../../components/XLink.vue";
|
||||||
import XUpload from "../../../components/XUpload.vue";
|
import XUpload from "../../../components/XUpload.vue";
|
||||||
import XInput from "../../../components/XInput.vue";
|
import XInput from "../../../components/XInput.vue";
|
||||||
@@ -27,7 +27,7 @@ const success = async () => {
|
|||||||
const {msg} = await Api.system.addTaskBackfill({
|
const {msg} = await Api.system.addTaskBackfill({
|
||||||
id: data.children.id,
|
id: data.children.id,
|
||||||
cid: current.value + 1,
|
cid: current.value + 1,
|
||||||
content: content,
|
content: content.flat(),
|
||||||
type: data.task_content[current.value].is_image,
|
type: data.task_content[current.value].is_image,
|
||||||
});
|
});
|
||||||
showToast(msg);
|
showToast(msg);
|
||||||
@@ -38,11 +38,25 @@ watch(
|
|||||||
() => [data, current],
|
() => [data, current],
|
||||||
() => {
|
() => {
|
||||||
if (data.children.back[current.value]?.content_arr) {
|
if (data.children.back[current.value]?.content_arr) {
|
||||||
content.push(...data.children.back[current.value].content_arr);
|
setTimeout(() => {
|
||||||
|
content.length = 0;
|
||||||
|
content.push(...data.children.back[current.value].content_arr.map(v => [v]));
|
||||||
|
}, 100);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{deep: true, immediate: true}
|
{deep: true, immediate: true}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const initContent = () => {
|
||||||
|
content.length = 0;
|
||||||
|
data.task_content[current.value].data.forEach(v => {
|
||||||
|
content.push([]);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
initContent();
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -50,7 +64,7 @@ watch(
|
|||||||
<view class="!flex gap-[24rpx] !mb-[28rpx]">
|
<view class="!flex gap-[24rpx] !mb-[28rpx]">
|
||||||
<view
|
<view
|
||||||
v-for="(item,index) in data.task_content"
|
v-for="(item,index) in data.task_content"
|
||||||
@click="current=index"
|
@click="() => {current=index;initContent()}"
|
||||||
:class="['tab-item', index===current?'cur':'']">
|
:class="['tab-item', index===current?'cur':'']">
|
||||||
回填{{ index + 1 }}
|
回填{{ index + 1 }}
|
||||||
</view>
|
</view>
|
||||||
@@ -89,16 +103,16 @@ watch(
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="block" v-for="(v, index) in data.fb_num">
|
<view class="block" v-for="(v, index) in data.task_content[current].data">
|
||||||
<view class="block-title">
|
<view class="block-title">
|
||||||
回填{{ index + 1 }}的截图:
|
{{ v.name }}:
|
||||||
</view>
|
</view>
|
||||||
<view class="block-info">
|
<view class="block-info">
|
||||||
<x-upload
|
<x-upload
|
||||||
:del="data.children.back[current]"
|
:del="data.children.back[current]"
|
||||||
:single="true"
|
:single="true"
|
||||||
v-model:files="content"
|
v-model:files="content[index]"
|
||||||
v-if="data.task_content[current].is_image === 1">
|
v-if="v.is_image === 1">
|
||||||
</x-upload>
|
</x-upload>
|
||||||
<x-input v-else v-model:model-value="content[index]" height="64rpx" placeholder="请输入内容"></x-input>
|
<x-input v-else v-model:model-value="content[index]" height="64rpx" placeholder="请输入内容"></x-input>
|
||||||
</view>
|
</view>
|
||||||
@@ -137,8 +151,9 @@ watch(
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template
|
<template
|
||||||
v-if="data.children.back.length===0 || data.children.back[current]?.operate === 0 || data.children.back[current]?.status === 0 || data.children.back[current]?.status === -1">
|
v-if="!data.children.back[current] || data.children.back[current]?.operate === 0 || data.children.back[current]?.operate === 3">
|
||||||
<tui-button @click="success" :disabled="data.children.back[current]">
|
<tui-button @click="success"
|
||||||
|
:disabled="data.children.back[current]?.status === 0 || data.children.back[current]?.status === -1">
|
||||||
{{
|
{{
|
||||||
data.children.back[current]?.status === 0 || data.children.back[current]?.status === -1 ? '已提交' : '提交'
|
data.children.back[current]?.status === 0 || data.children.back[current]?.status === -1 ? '已提交' : '提交'
|
||||||
}}
|
}}
|
||||||
@@ -161,7 +176,6 @@ watch(
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import XModal from "../../../components/XModal.vue";
|
import XModal from "../../../components/XModal.vue";
|
||||||
import {defineEmits, reactive, ref} from "vue";
|
import {defineEmits, reactive, ref, watch} from "vue";
|
||||||
import XUpload from "../../../components/XUpload.vue";
|
import XUpload from "../../../components/XUpload.vue";
|
||||||
import XInput from "../../../components/XInput.vue";
|
import XInput from "../../../components/XInput.vue";
|
||||||
import Api from "../../../api/index.js";
|
import Api from "../../../api/index.js";
|
||||||
@@ -20,11 +20,28 @@ const {data, current} = defineProps({
|
|||||||
const content = reactive([]);
|
const content = reactive([]);
|
||||||
const show = ref(false);
|
const show = ref(false);
|
||||||
|
|
||||||
|
const initContent = () => {
|
||||||
|
content.length = 0;
|
||||||
|
data.task_content[current].data.forEach(v => {
|
||||||
|
content.push([]);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => show.value,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
initContent();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{deep: true}
|
||||||
|
)
|
||||||
|
|
||||||
const success = async () => {
|
const success = async () => {
|
||||||
const {msg} = await Api.system.addTaskBackfill({
|
const {msg} = await Api.system.addTaskBackfill({
|
||||||
id: data.children.id,
|
id: data.children.id,
|
||||||
cid: current + 1,
|
cid: current + 1,
|
||||||
content: content,
|
content: content.flat(),
|
||||||
type: data.task_content[current].is_image,
|
type: data.task_content[current].is_image,
|
||||||
});
|
});
|
||||||
showToast(msg);
|
showToast(msg);
|
||||||
@@ -42,15 +59,15 @@ const success = async () => {
|
|||||||
<view class="!py-[40rpx] !px-[32rpx] test-32r font-blod">
|
<view class="!py-[40rpx] !px-[32rpx] test-32r font-blod">
|
||||||
<view class="text-center text-[#1D2129] pb-[20rpx]">重新回填:回填数据1</view>
|
<view class="text-center text-[#1D2129] pb-[20rpx]">重新回填:回填数据1</view>
|
||||||
|
|
||||||
<view class="block" v-for="(v, index) in data.fb_num">
|
<view class="block" v-for="(v, index) in data.task_content[current].data">
|
||||||
<view class="block-title">
|
<view class="block-title">
|
||||||
回填{{ index + 1 }}的截图:
|
{{ v.name }}:
|
||||||
</view>
|
</view>
|
||||||
<view class="block-info">
|
<view class="block-info">
|
||||||
<x-upload
|
<x-upload
|
||||||
:del="data.children.user_status !== 2"
|
:del="data.children.user_status !== 2"
|
||||||
:single="true"
|
:single="true"
|
||||||
v-model:files="content"
|
v-model:files="content[index]"
|
||||||
v-if="data.task_content[current].is_image === 1">
|
v-if="data.task_content[current].is_image === 1">
|
||||||
</x-upload>
|
</x-upload>
|
||||||
<x-input v-else v-model:model-value="content[index]" height="64rpx"
|
<x-input v-else v-model:model-value="content[index]" height="64rpx"
|
||||||
|
|||||||
@@ -57,6 +57,10 @@ const {loading, pagination, initFetchData, fetchData} = useTableQuery({
|
|||||||
<view class="px-[24rpx] py-[16rpx] bg-[#fff] rounded-[8rpx] test-24r text-[#4E5969]" v-else
|
<view class="px-[24rpx] py-[16rpx] bg-[#fff] rounded-[8rpx] test-24r text-[#4E5969]" v-else
|
||||||
v-html="v.content">
|
v-html="v.content">
|
||||||
</view>
|
</view>
|
||||||
|
<view
|
||||||
|
:class="[v.status===0?'text_warn':'',v.status===1?'text_success':'',v.status===-1?'text_error':'', 'text_info']">
|
||||||
|
{{ v.status_text }}
|
||||||
|
</view>
|
||||||
<view :class="['status', v.is_read === 1 ? 'read' : 'unread']">
|
<view :class="['status', v.is_read === 1 ? 'read' : 'unread']">
|
||||||
{{ v.is_read === 1 ? '已读' : '未读' }}
|
{{ v.is_read === 1 ? '已读' : '未读' }}
|
||||||
</view>
|
</view>
|
||||||
@@ -200,4 +204,21 @@ const {loading, pagination, initFetchData, fetchData} = useTableQuery({
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 24rpx;
|
padding: 24rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text_info {
|
||||||
|
font-size: 20rpx;
|
||||||
|
margin-top: 8rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text_success {
|
||||||
|
color: rgba(0, 180, 42, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.text_warn {
|
||||||
|
color: rgba(255, 125, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.text_error {
|
||||||
|
color: rgba(245, 63, 63, 1);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -2,11 +2,16 @@
|
|||||||
import fmt from "../../../static/images/fmt.png";
|
import fmt from "../../../static/images/fmt.png";
|
||||||
import linkIcon from '../../../static/icons/link.png';
|
import linkIcon from '../../../static/icons/link.png';
|
||||||
import XImage from "../../../components/XImage.vue";
|
import XImage from "../../../components/XImage.vue";
|
||||||
|
import XSquareCarouselImage from "../../../components/XSquareCarouselImage.vue";
|
||||||
|
|
||||||
const {data} = defineProps({
|
const {data, home} = defineProps({
|
||||||
data: {
|
data: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: null,
|
default: null,
|
||||||
|
},
|
||||||
|
home: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -35,14 +40,11 @@ const {data} = defineProps({
|
|||||||
<view class="block">
|
<view class="block">
|
||||||
<view class="block-title">素材案例:</view>
|
<view class="block-title">素材案例:</view>
|
||||||
<view class="block-info !grid grid-cols-3 gap-[20rpx]">
|
<view class="block-info !grid grid-cols-3 gap-[20rpx]">
|
||||||
<x-image
|
<x-square-carousel-image
|
||||||
v-if="data.case_images_arr.length > 0"
|
v-if="data.case_images_arr.length > 0"
|
||||||
class="!size-[160rpx]"
|
|
||||||
:src="data.case_images_arr[0]"
|
|
||||||
:list="data.case_images_arr"
|
:list="data.case_images_arr"
|
||||||
:cur="0" mode="aspectFill"
|
:show-s-y="home">
|
||||||
:draggable="false">
|
</x-square-carousel-image>
|
||||||
</x-image>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="block">
|
<view class="block">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import goodsIcon from '../../static/icons/goodsIcon.png';
|
import goodsIcon from '../../static/icons/goodsIcon.png';
|
||||||
import XNav from "../../components/XNav.vue";
|
import XNav from "../../components/XNav.vue";
|
||||||
import {defineAsyncComponent, getCurrentInstance, nextTick, onMounted, computed, ref} from 'vue';
|
import {computed, defineAsyncComponent, getCurrentInstance, nextTick, onMounted, ref} from 'vue';
|
||||||
import {onLoad} from "@dcloudio/uni-app";
|
import {onLoad} from "@dcloudio/uni-app";
|
||||||
import XLink from "../../components/XLink.vue";
|
import XLink from "../../components/XLink.vue";
|
||||||
import XNoticeBar from "../../components/XNoticeBar.vue";
|
import XNoticeBar from "../../components/XNoticeBar.vue";
|
||||||
@@ -12,6 +12,7 @@ import XPrompt from "../../components/XPrompt.vue";
|
|||||||
import {numberToCharacter} from "../../utils/uils.js";
|
import {numberToCharacter} from "../../utils/uils.js";
|
||||||
import AcceptAssignmentModal from "../../components/AcceptAssignmentModal.vue";
|
import AcceptAssignmentModal from "../../components/AcceptAssignmentModal.vue";
|
||||||
import ICON from "../../static/icons/prompt.png";
|
import ICON from "../../static/icons/prompt.png";
|
||||||
|
import XConfirmModal from "../../components/XConfirmModal.vue";
|
||||||
|
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
// #endif
|
// #endif
|
||||||
@@ -25,6 +26,7 @@ const ReviewCommunication = defineAsyncComponent(() => import('./components/Revi
|
|||||||
|
|
||||||
const details = ref(null);
|
const details = ref(null);
|
||||||
const home = ref(false);
|
const home = ref(false);
|
||||||
|
const showInitModal = ref(false);
|
||||||
const mainDetailWidth = ref(0);
|
const mainDetailWidth = ref(0);
|
||||||
const currentTabs = ref(0);
|
const currentTabs = ref(0);
|
||||||
const tabs = computed(() => [
|
const tabs = computed(() => [
|
||||||
@@ -71,6 +73,7 @@ onMounted(() => {
|
|||||||
mainDetailWidth.value = result[0].width;
|
mainDetailWidth.value = result[0].width;
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
showInitModal.value = true;
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -174,7 +177,8 @@ onMounted(() => {
|
|||||||
<Suspense>
|
<Suspense>
|
||||||
<template #default>
|
<template #default>
|
||||||
<div class="h-full flex flex-col items-start">
|
<div class="h-full flex flex-col items-start">
|
||||||
<component :is="tabs[currentTabs].component" :data="details" @success="getData"></component>
|
<component :is="tabs[currentTabs].component" :data="details" @success="getData"
|
||||||
|
:home="home"></component>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -379,6 +383,23 @@ onMounted(() => {
|
|||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<x-confirm-modal
|
||||||
|
title="注意"
|
||||||
|
width="500rpx"
|
||||||
|
v-bind="$attrs"
|
||||||
|
:cancel="false"
|
||||||
|
confirm-text="知道了"
|
||||||
|
v-model:show="showInitModal">
|
||||||
|
<template #info>
|
||||||
|
<view class="text-[22rpx]">
|
||||||
|
请认真阅读该任务的:
|
||||||
|
<text class="text-[rgba(22,93,255,1)]">发布要求、回填要求、扣款说明</text>
|
||||||
|
<br/>
|
||||||
|
确认无误后再接受本任务,任务逾期或失败,将影响您的收益!
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
</x-confirm-modal>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
BIN
src/static/icons/水印_素材案例.png
Normal file
BIN
src/static/icons/水印_素材案例.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.4 KiB |
Reference in New Issue
Block a user