This commit is contained in:
2025-06-16 20:54:42 +08:00
parent 88a8d119cf
commit 021918e56d
8 changed files with 63 additions and 49 deletions

View File

@@ -104,11 +104,11 @@ const system = {
data: data,
});
},
getTaskinfo: async (id) => {
getTaskinfo: async (id, task_children_id) => {
return request({
method: MethodsENUM.POST,
url: "/task/getTaskinfo",
data: {id},
data: {id, task_children_id},
});
},
getArticleCategory: async (data) => {

View File

@@ -37,7 +37,8 @@ const tabs = [
const getData = async () => {
const {data} = await Api.system.myAccount({
status: po.status + 1
status: po.status + 1,
pid: details.platform_id,
});
vo.length = 0;
vo.push(...data);

View File

@@ -16,7 +16,7 @@ const {data} = defineProps({
</script>
<template>
<view @click="toPage(`/pages/taskDetails/index?id=${data.id}`)"
<view @click="toPage(`/pages/taskDetails/index?id=${data.id}&task_children_id=${data.task_children_id}`)"
class="rounded-[8rpx] bg-[#fff] !p-[24rpx] overflow-hidden task-card">
<view class="!pb-[20rpx] !flex justify-between" style="border-bottom: 1px solid #E5E6EB">
<view style="font-size: 28rpx">

View File

@@ -34,7 +34,7 @@ const upload = async () => {
<template>
<view class="!flex gap-[12rpx] flex-wrap">
<view class="x-upload" @click="upload" v-if="single && files.length < 1">
<view class="x-upload" @click="upload" v-if="!single || single && files.length < 1">
<image class="!size-[28rpx]" :src="ADDICON"></image>
<view>上传图片</view>
</view>

View File

@@ -16,30 +16,31 @@ const taskType = reactive([]);
const platformType = reactive([]);
const tabs = [
{
name: '发布问题',
value: 0,
},
{
name: '抖音问题',
name: '进行中',
value: 1,
},
{
name: '结算问题',
name: '审核中',
value: 2,
},
{
name: '提现问题',
name: '已失效',
value: -1,
},
{
name: '已完成',
value: 3,
},
];
const current = ref(0);
const showFilter = ref(false);
const sumPo = reactive({
type: 0,
startTime: null,
endTime: null,
const po = reactive({
status: 1,
cid: 0,
pid: 0,
is_settlement: 0,
end_time: null,
start_time: null,
});
const po = reactive({});
const vo = reactive({
page: '',
rows: [],
@@ -50,9 +51,7 @@ const {loading, pagination, initFetchData} = useTableQuery({
api: Api.system.myTaskList,
parameter: po,
callback: (data) => {
vo.page = data.page;
vo.total = data.total;
vo.rows = [...vo.rows, ...data.rows];
Object.assign(vo, data);
}
});
@@ -64,6 +63,11 @@ Api.system.getPlatform().then(({data}) => {
platformType.length = 0;
platformType.push(...data);
});
const changeCurrent = async (item) => {
po.status = item.value;
await initFetchData();
}
</script>
<template>
@@ -71,24 +75,25 @@ Api.system.getPlatform().then(({data}) => {
<XNav :show-back="false"></XNav>
<x-filter
v-model:model="sumPo"
v-model:model="po"
@success="initFetchData"
v-model:visible="showFilter">
<x-filter-item label="任务类型">
<x-radio-group v-model:model-value="sumPo.type">
<x-radio-group v-model:model-value="po.cid">
<view class="!grid grid-cols-4 gap-[24rpx]">
<x-radio v-for="v in taskType" :key="v.id" :value="v.id">{{ v.name }}</x-radio>
</view>
</x-radio-group>
</x-filter-item>
<x-filter-item label="发布平台">
<x-radio-group v-model:model-value="sumPo.type">
<x-radio-group v-model:model-value="po.pid">
<view class="!grid grid-cols-4 gap-[24rpx]">
<x-radio v-for="v in platformType" :key="v.id" :value="v.id">{{ v.name }}</x-radio>
</view>
</x-radio-group>
</x-filter-item>
<x-filter-item label="结算状态">
<x-radio-group v-model:model-value="sumPo.type">
<x-radio-group v-model:model-value="po.is_settlement">
<view class="!grid grid-cols-4 gap-[24rpx]">
<x-radio :value="0">全部状态</x-radio>
<x-radio :value="1">未结算</x-radio>
@@ -98,8 +103,8 @@ Api.system.getPlatform().then(({data}) => {
</x-filter-item>
<x-filter-item label="选择时间段">
<x-date-range
v-model:end-time="sumPo.endTime"
v-model:start-time="sumPo.startTime">
v-model:end-time="po.end_time"
v-model:start-time="po.start_time">
</x-date-range>
</x-filter-item>
</x-filter>
@@ -138,17 +143,17 @@ Api.system.getPlatform().then(({data}) => {
<view
class="!w-full !h-[146rpx] bg-[#E8F3FF] !py-[24rpx] !px-[32rpx] box-border !flex flex-col justify-between rounded-[12rpx]">
<view class="block-title">接受任务数</view>
<view class="block-value">10</view>
<view class="block-value">{{ vo.total }}</view>
</view>
<view
class="!w-full !h-[146rpx] bg-[#E8F3FF] !py-[24rpx] !px-[32rpx] box-border !flex flex-col justify-between rounded-[12rpx]">
<view class="block-title">预估收益()</view>
<view class="block-value">45.00</view>
<view class="block-value">{{ vo.count.toFixed(2) }}</view>
</view>
<view
class="!w-full !h-[146rpx] !bg-[#E8FFEA] !py-[24rpx] !px-[32rpx] box-border !flex flex-col justify-between rounded-[12rpx]">
<view class="block-title">完成任务数</view>
<view class="block-value">4</view>
<view class="block-value">{{ vo.complete }}</view>
</view>
<view
class="!w-full !h-[146rpx] !bg-[#E8FFEA] !py-[24rpx] !px-[32rpx] box-border !flex flex-col justify-between rounded-[12rpx]">
@@ -170,7 +175,7 @@ Api.system.getPlatform().then(({data}) => {
</template>
</x-alert>
</view>
<view class="block-value">5.60</view>
<view class="block-value">{{ vo.real_coin.toFixed(2) }}</view>
</view>
</view>
</view>
@@ -179,8 +184,8 @@ Api.system.getPlatform().then(({data}) => {
<view class="!grid grid-cols-4 gap-[20rpx] !px-[20rpx] bg-[#F2F3F5] py-[20rpx]">
<view
v-for="item in tabs"
@click="current=item.value"
:class="['rounded-full bg-[#fff] text-center !py-[8rpx] !text-[13px] duration-500', current===item.value ? 'current' : '']">
@click="changeCurrent(item)"
:class="['rounded-full bg-[#fff] text-center !py-[8rpx] !text-[13px] duration-500', po.status===item.value ? 'current' : '']">
{{ item.name }}
</view>
</view>

View File

@@ -105,18 +105,18 @@ watch(
</view>
<template v-if="data.children.back[current]">
<view class="text-[#165DFF] test-24r py-[32rpx]" v-if="data.children.back[current].status === 1">
<view class="text-[#165DFF] test-24r py-[32rpx]" v-if="data.children.back[current]?.status === 1">
{{ dayjs(data.children.createtime * 1000).format('YYYY-MM-DD HH:mm') }}已提交审核通过
</view>
<template v-if="data.children.back[current].status === 2">
<view class="text-[#165DFF] test-24r py-[32rpx]" v-if="data.children.back[current].operate === 1">
<template v-if="data.children.back[current]?.status === 2">
<view class="text-[#165DFF] test-24r py-[32rpx]" v-if="data.children.back[current]?.operate === 1">
<view>{{ dayjs(data.children.createtime * 1000).format('YYYY-MM-DD HH:mm') }}已提交审核拒绝</view>
<view>请请点击审核沟通查看修改建议</view>
<view>
并于{{ dayjs(data.children.back[current].end_time * 1000).format('YYYY-MM-DD HH:mm') }}前点击下方重新提交本次回填
</view>
</view>
<view class="text-[#165DFF] test-24r py-[32rpx]" v-if="data.children.back[current].operate === 2">
<view class="text-[#165DFF] test-24r py-[32rpx]" v-if="data.children.back[current]?.operate === 2">
<view>{{ dayjs(data.children.createtime * 1000).format('YYYY-MM-DD HH:mm') }}已提交审核拒绝</view>
<view>请请点击审核沟通查看修改建议</view>
<view>
@@ -127,20 +127,20 @@ watch(
</view>
</template>
<view class="text-[#165DFF] test-24r py-[32rpx]"
v-if="data.children.back[current].status === 0">
v-if="data.children.back[current]?.status === 0">
{{ dayjs(data.children.createtime * 1000).format('YYYY-MM-DD HH:mm') }}已提交审核中
</view>
<view class="text-[#165DFF] test-24r py-[32rpx]"
v-if="data.children.back[current].status === -1">
v-if="data.children.back[current]?.status === -1">
{{ dayjs(data.children.createtime * 1000).format('YYYY-MM-DD HH:mm') }}已提交审核失败
</view>
</template>
<template
v-if="data.children.back[current].status === 0 || data.children.back[current].status === -1">
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">
<tui-button @click="success" :disabled="data.children.back[current]">
{{
data.children.back[current].status === 0 || data.children.back[current].status === -1 ? '已提交' : '提交'
data.children.back[current]?.status === 0 || data.children.back[current]?.status === -1 ? '已提交' : '提交'
}}
</tui-button>
</template>
@@ -149,12 +149,12 @@ watch(
<view class="!w-[50%]">
<tui-button disabled>已提交</tui-button>
</view>
<view class="!w-[50%]" v-if="data.children.back[current].operate === 1">
<view class="!w-[50%]" v-if="data.children.back[current]?.operate === 1">
<resubmit :data="data" :current="current" @success="emits('success')">
<tui-button>重新提交</tui-button>
</resubmit>
</view>
<view class="!w-[50%]" v-if="data.children.back[current].operate === 2">
<view class="!w-[50%]" v-if="data.children.back[current]?.operate === 2">
<reply-message-modal :data="data" @success="emits('success')" :backId="data.children.back[current].id">
<tui-button>回复</tui-button>
</reply-message-modal>

View File

@@ -17,7 +17,7 @@ const {data} = defineProps({
});
const po = reactive({
id: data.children.id,
id: data.children?.id,
});
const vo = reactive({
intervention: null,
@@ -68,7 +68,7 @@ const {loading, pagination, initFetchData, fetchData} = useTableQuery({
</view>
</view>
<view class="w-full bg-white p-[24rpx] !mt-[24rpx] rounded-[8rpx]" v-if="vo.intervention.id">
<view class="w-full bg-white p-[24rpx] !mt-[24rpx] rounded-[8rpx]" v-if="vo.intervention?.id">
<view class="test-28r text-[#1D2129] text-center">达人发起了平台介入</view>
<view class="bg-[#F7F8FA] px-[24rpx] py-[15rpx] !mt-[20rpx]">
<view class="test-28r text-[#1D2129]">申诉原因</view>

View File

@@ -11,6 +11,7 @@ import dayjs from "dayjs";
import XPrompt from "../../components/XPrompt.vue";
import {numberToCharacter} from "../../utils/uils.js";
import AcceptAssignmentModal from "../../components/AcceptAssignmentModal.vue";
import ICON from "../../static/icons/prompt.png";
// #ifdef APP-PLUS
// #endif
@@ -45,16 +46,16 @@ const tabs = reactive([
},
]);
const getData = async (id) => {
const {data} = await Api.system.getTaskinfo(id || details.value.id);
const getData = async (id, task_children_id) => {
const {data} = await Api.system.getTaskinfo(id || details.value.id, task_children_id);
details.value = data;
}
onLoad((options) => {
const {id, home: _home, tab} = options;
const {id, home: _home, tab, task_children_id} = options;
home.value = _home === '1';
if (tab) currentTabs.value = Number(tab);
getData(id);
getData(id, task_children_id);
});
onMounted(() => {
@@ -258,6 +259,13 @@ onMounted(() => {
<view
class="bg-[#F7F8FA] py-[12rpx] px-[20rpx] border-1 border-[rgb(229,230,235)] flex-grow">
{{ v.content }}
<view class="!inline-block">
<x-image
:src="v.ts_images_arr[0]"
:list="v.ts_images_arr">
<image class="!size-[24rpx]" :src="ICON" mode="aspectFill"></image>
</x-image>
</view>
</view>
</view>
</view>