This commit is contained in:
2025-06-24 20:55:09 +08:00
parent b98de4746d
commit 3ac2bbcf07
13 changed files with 116 additions and 146 deletions

2
.env
View File

@@ -1,4 +1,4 @@
VITE_API_URL=http://admin.ceshi.guo123.cn/api VITE_API_URL=https://admin.ceshi.guo123.cn/api
VITE_TINYMCE_KEY=agmu6i1c6k7bcp36oenzyz7yi1yplptq7goyx88y1g6ofnqu VITE_TINYMCE_KEY=agmu6i1c6k7bcp36oenzyz7yi1yplptq7goyx88y1g6ofnqu
VITE_AES_KEY=st123456654321st VITE_AES_KEY=st123456654321st
VITE_APP_ID=wxa4dd2d036c8156a4 VITE_APP_ID=wxa4dd2d036c8156a4

View File

@@ -1,4 +1,4 @@
<script setup lang="ts"> <script setup>
import NULLICON from "../static/images/缺省图.png"; import NULLICON from "../static/images/缺省图.png";
import XModal from "./XModal.vue"; import XModal from "./XModal.vue";
import {getCurrentInstance, nextTick, onMounted, reactive, ref, watch} from "vue"; import {getCurrentInstance, nextTick, onMounted, reactive, ref, watch} from "vue";
@@ -76,13 +76,13 @@ const success = async () => {
showToast('请选择帐号'); showToast('请选择帐号');
return; return;
} }
const {msg, data} = await Api.system.acceptTask({ const {msg, data: {task_children_id, task_id}} = await Api.system.acceptTask({
id: details.id, id: details.id,
account: selected.value, account: selected.value,
}); });
showToast(msg); showToast(msg);
show.value = false; show.value = false;
await toPage(`/pages/taskDetails/index?id=${data[1]}&task_children_id=${0}&delta=999`) await toPage(`/pages/taskDetails/index?id=${task_id}&task_children_id=${task_children_id}&delta=999`)
emits('success'); emits('success');
} }
</script> </script>

View File

@@ -76,10 +76,10 @@ onLoad((options) => {
<x-date-time :type="1" v-model:model-value="form.abnormaltime"></x-date-time> <x-date-time :type="1" v-model:model-value="form.abnormaltime"></x-date-time>
</x-form-item> </x-form-item>
<x-form-item label="主页截图"> <x-form-item label="主页截图">
<x-upload v-model:files="form.homepage"></x-upload> <x-upload v-model:files="form.homepage" single></x-upload>
</x-form-item> </x-form-item>
<x-form-item label="主页二维码"> <x-form-item label="主页二维码">
<x-upload v-model:files="form.qrcode"></x-upload> <x-upload v-model:files="form.qrcode" single></x-upload>
</x-form-item> </x-form-item>
</x-form> </x-form>

View File

@@ -1,10 +1,9 @@
<script setup> <script setup>
import {ref, reactive} from "vue"; import {reactive, ref} from "vue";
import XNav from "../../components/XNav.vue"; import XNav from "../../components/XNav.vue";
import {copy, download, showToast} from "../../utils/uils.js"; import {copy, download, showToast} from "../../utils/uils.js";
import XLink from "../../components/XLink.vue"; import XLink from "../../components/XLink.vue";
import XImage from "../../components/XImage.vue"; import XImage from "../../components/XImage.vue";
import testIcon from "../../static/images/test.png";
import {onLoad} from "@dcloudio/uni-app"; import {onLoad} from "@dcloudio/uni-app";
import Api from "../../api/index.js"; import Api from "../../api/index.js";
import {useUserStore} from "../../pinia/UserStore/index.js"; import {useUserStore} from "../../pinia/UserStore/index.js";
@@ -15,15 +14,15 @@ const current = ref(0);
const tabs = reactive([]); const tabs = reactive([]);
onLoad((options) => { onLoad((options) => {
const {id, token} = options; const {id, token, task_children_id} = options;
if (!id) { if (!id) {
showToast('未找到任务'); showToast('未找到任务');
return; return;
} }
setToken(token); setToken(token);
Api.system.getTaskinfo(id).then(({data}) => { Api.system.getTaskinfo(id, task_children_id).then(({data}) => {
Object.assign(detail, data); Object.assign(detail, data);
tabs.push(...detail.children.material.map((v, index) => ({ tabs.push(...detail.children?.material?.map((v, index) => ({
id: v.id, id: v.id,
name: `素材${index + 1}` name: `素材${index + 1}`
}))); })));
@@ -39,90 +38,76 @@ onLoad((options) => {
<tui-tabs v-if="tabs.length>0" :tabs="tabs" :currentTab="current" @change="({index})=>current=index"></tui-tabs> <tui-tabs v-if="tabs.length>0" :tabs="tabs" :currentTab="current" @change="({index})=>current=index"></tui-tabs>
<view class="block"> <template v-if="detail.id">
<view class="title">标题</view> <view class="block" v-if="detail.material_type?.title_limit > 0">
<view class="info"> <view class="title">标题</view>
{{ detail.children.material[current].title }} <view class="info">
{{ detail.children.material[current].title }}
<view class="copy-button" @click="copy(detail.children.material[current].title)">复制</view> <view class="copy-button" @click="copy(detail.children?.material[current].title)">复制</view>
</view>
</view>
<view class="block">
<view class="title">
话题
<x-link class="!ml-auto" show-description>查看引导</x-link>
</view>
<view class="info">
{{ detail.children.material[current].tags_arr.join(' ') }}
<view class="copy-button" @click="copy(detail.children.material[current].tags_arr.join(' '))">复制</view>
</view>
</view>
<view class="block">
<view class="title">正文</view>
<view class="info">
{{ detail.children.material[current].content }}
<view class="copy-button" @click="copy(detail.children.material[current].content)">复制</view>
</view>
</view>
<view class="block">
<view class="title">素材请按顺序下载&发布</view>
<view class="info">
<view class="!grid grid-cols-5 flex-wrap gap-[32rpx]">
<x-image
v-for="(v, index) in detail.children.material[current].material_arr"
:key="index"
:src="v"
imageClass="!w-[100%] !h-auto !aspect-square">
</x-image>
</view> </view>
<view class="copy-button" @click="download(detail.children.material[current].material_arr)">批量保存</view>
</view> </view>
</view>
<view v-if="detail.children?.material[current]?.comment" class="block"> <view class="block" v-if="detail.material_type?.tags_limit > 0">
<view class="title">评论1</view> <view class="title">
<view class="info"> 话题
{{ detail.children?.material[current]?.comment.intro }} <view class="!ml-auto">
<x-image :src="detail.task_content[current].ts_images_arr[0]"
<view class="!grid grid-cols-5 flex-wrap gap-[32rpx]"> :list="detail.task_content[current].ts_images_arr">
<x-image <x-link show-description>查看引导</x-link>
v-for="j in detail.children?.material[current]?.comment.image_arr" </x-image>
:src="j"
imageClass="!w-[100%] !h-auto !aspect-square">
</x-image>
</view>
<view class="!flex gap-[24rpx] justify-center">
<view class="copy-button !mx-0" @click="copy(detail.children?.material[current]?.comment.intro)">复制文字
</view> </view>
<view class="copy-button !mx-0" </view>
@click="download(detail.children?.material[current]?.comment.image_arr)">保存图片 <view class="info">
{{ detail.children?.material[current].tags_arr.join(' ') }}
<view class="copy-button" @click="copy(detail.children.material[current].tags_arr.join(' '))">复制
</view> </view>
</view> </view>
</view> </view>
</view>
<view v-for="(v, index) in detail.children?.material[current]?.comment.children" :key="v.id" class="block"> <view class="block" v-if="detail.material_type?.desc_limit > 0">
<view class="title">评论{{ index + 2 }}</view> <view class="title">正文</view>
<view class="info"> <view class="info">
{{ v.intro }} {{ detail.children?.material[current].content }}
<view class="!grid grid-cols-5 flex-wrap gap-[32rpx]"> <view class="copy-button" @click="copy(detail.children?.material[current].content)">复制</view>
<x-image v-for="j in v.image_arr" :src="j" imageClass="!w-[100%] !h-auto !aspect-square"></x-image>
</view>
<view class="!flex gap-[24rpx] justify-center">
<view class="copy-button !mx-0" @click="copy(v.intro)">复制文字
</view>
<view class="copy-button !mx-0" @click="download(v.image_arr)">保存图片</view>
</view> </view>
</view> </view>
</view>
<view class="block">
<view class="title">素材请按顺序下载&发布</view>
<view class="info">
<view class="!grid grid-cols-5 flex-wrap gap-[32rpx]">
<x-image
v-for="(v, index) in detail.children?.material[current].material_arr"
:key="index"
:src="v"
imageClass="!w-[100%] !h-auto !aspect-square">
</x-image>
</view>
<view class="copy-button" @click="download(detail.children?.material[current].material_arr)">批量保存
</view>
</view>
</view>
<view v-for="(v, index) in detail.children?.material[current]?.comment" :key="v.id" class="block">
<view class="title">评论{{ index + 1 }}</view>
<view class="info">
{{ v.intro }}
<view class="!grid grid-cols-5 flex-wrap gap-[32rpx]">
<x-image v-for="j in v.image_arr" :src="j" imageClass="!w-[100%] !h-auto !aspect-square"></x-image>
</view>
<view class="!flex gap-[24rpx] justify-center">
<view class="copy-button !mx-0" @click="copy(v.intro)">复制文字
</view>
<view class="copy-button !mx-0" @click="download(v.image_arr)">保存图片</view>
</view>
</view>
</view>
</template>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@@ -11,6 +11,7 @@ import XRadioGroup from "../../components/XRadioGroup.vue";
import XRadio from "../../components/XRadio.vue"; import XRadio from "../../components/XRadio.vue";
import XDateRange from "../../components/XDateRange.vue"; import XDateRange from "../../components/XDateRange.vue";
import XAlert from "../../components/XAlert.vue"; import XAlert from "../../components/XAlert.vue";
import {onShow} from "@dcloudio/uni-app";
const taskType = reactive([]); const taskType = reactive([]);
const platformType = reactive([]); const platformType = reactive([]);
@@ -53,6 +54,7 @@ const vo = reactive({
const {loading, pagination, initFetchData} = useTableQuery({ const {loading, pagination, initFetchData} = useTableQuery({
api: Api.system.myTaskList, api: Api.system.myTaskList,
immediate: false,
parameter: po, parameter: po,
callback: (data) => { callback: (data) => {
Object.assign(vo, data); Object.assign(vo, data);
@@ -72,6 +74,10 @@ const changeCurrent = async (item) => {
po.status = item.value; po.status = item.value;
await initFetchData(); await initFetchData();
} }
onShow(() => {
initFetchData();
});
</script> </script>
<template> <template>

View File

@@ -31,7 +31,7 @@ const list = computed(() => data.children.material[current.value].comment?.flatM
</view> </view>
<template v-if="true"> <template v-if="true">
<view class="block"> <view class="block" v-if="data.material_type?.title_limit > 0">
<view class="block-title"> <view class="block-title">
标题: 标题:
</view> </view>
@@ -39,7 +39,7 @@ const list = computed(() => data.children.material[current.value].comment?.flatM
{{ data.children.material[current].title }} {{ data.children.material[current].title }}
</view> </view>
</view> </view>
<view class="block"> <view class="block" v-if="data.material_type?.tags_limit > 0">
<view class="block-title"> <view class="block-title">
话题: 话题:
</view> </view>
@@ -47,7 +47,7 @@ const list = computed(() => data.children.material[current.value].comment?.flatM
{{ data.children.material[current].tags_arr.map(item => `#${item}`).join(' ') }} {{ data.children.material[current].tags_arr.map(item => `#${item}`).join(' ') }}
</view> </view>
</view> </view>
<view class="block"> <view class="block" v-if="data.material_type?.desc_limit > 0">
<view class="block-title"> <view class="block-title">
正文: 正文:
</view> </view>
@@ -88,7 +88,7 @@ const list = computed(() => data.children.material[current.value].comment?.flatM
</view> </view>
</view> </view>
<tui-button size="28" @click="toWXMiniApp(data.id)"> <tui-button size="28" @click="toWXMiniApp(data.id, data.children.id)">
<tui-icon size="20" color="#fff" name="bottom"></tui-icon> <tui-icon size="20" color="#fff" name="bottom"></tui-icon>
<view class="!ml-[20rpx]">一键下载</view> <view class="!ml-[20rpx]">一键下载</view>
</tui-button> </tui-button>

View File

@@ -109,52 +109,18 @@ onMounted(() => {
</view> </view>
<view class="block-info"> <view class="block-info">
<x-upload <x-upload
:del="data.children.back[current]" :del="data.children.back[current]?.status === -2"
:single="true" :single="true"
v-model:files="content[index]" v-model:files="content[index]"
v-if="v.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="请输入内容"
:disabled="data.children.back[current]?.status !== -2"></x-input>
</view> </view>
</view> </view>
<template v-if="data.children.back[current]"> <view class="py-[32rpx]" v-html="data.children.back[current]?.text">
<view class="text-[#165DFF] test-24r py-[32rpx]" v-if="data.children.back[current]?.status === 1"> </view>
{{ dayjs(data.children.back[current].back_time * 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">
<view>{{
dayjs(data.children.back[current].back_time * 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>{{
dayjs(data.children.back[current].back_time * 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>
</template>
<view class="text-[#165DFF] test-24r py-[32rpx]"
v-if="data.children.back[current]?.status === 0">
{{ dayjs(data.children.back[current].back_time * 1000).format('YYYY-MM-DD HH:mm') }}已提交审核中
</view>
<view class="text-[#165DFF] test-24r py-[32rpx]"
v-if="data.children.back[current]?.status === -1">
{{ dayjs(data.children.back[current].back_time * 1000).format('YYYY-MM-DD HH:mm') }}已提交审核失败
</view>
</template>
<template <template
v-if="!data.children.back[current] || data.children.back[current]?.operate === 0 || data.children.back[current]?.operate === 3"> v-if="!data.children.back[current] || data.children.back[current]?.operate === 0 || data.children.back[current]?.operate === 3">

View File

@@ -42,7 +42,7 @@ const confirmTask = async () => {
提示点击下方按钮快速回复 提示点击下方按钮快速回复
</view> </view>
<view <view
@click="toPage(`/pages/taskDetails/index?id=${data.id}&tab=2`)" @click="toPage(`/pages/taskDetails/index?id=${data.id}&task_children_id=${data.children.id}&tab=2`)"
class="py-[15rpx] !flex justify-center flex-col items-center test-28r text-[#165DFF] bg-[#E8F3FF] px-[26rpx]"> class="py-[15rpx] !flex justify-center flex-col items-center test-28r text-[#165DFF] bg-[#E8F3FF] px-[26rpx]">
去重新回填 去重新回填
</view> </view>
@@ -53,7 +53,7 @@ const confirmTask = async () => {
<view class="w-full h-[2rpx] bg-[#E5E6EB] !my-[8rpx]"></view> <view class="w-full h-[2rpx] bg-[#E5E6EB] !my-[8rpx]"></view>
<view class="test-22r text-[#86909C]">商家将根据约定扣钱或不结算</view> <view class="test-22r text-[#86909C]">商家将根据约定扣钱或不结算</view>
</view> </view>
<reply-message-modal :data="data" :intervention="true" @success="emits('success')"> <reply-message-modal :data="data" :logId="item.id" :intervention="true" @success="emits('success')">
<view <view
class="py-[15rpx] !flex justify-center flex-col items-center test-28r text-[#165DFF] bg-[#E8F3FF] px-[26rpx]"> class="py-[15rpx] !flex justify-center flex-col items-center test-28r text-[#165DFF] bg-[#E8F3FF] px-[26rpx]">
发起申诉 发起申诉
@@ -69,6 +69,7 @@ const confirmTask = async () => {
<reply-message-modal <reply-message-modal
:backId="item.task_backfill_id" :backId="item.task_backfill_id"
:pattern="1" :pattern="1"
:logId="item.id"
:data="data" :data="data"
:intervention="true" :intervention="true"
@success="emits('success');"> @success="emits('success');">
@@ -84,7 +85,7 @@ const confirmTask = async () => {
<view class="w-full h-[2rpx] bg-[#E5E6EB] !my-[8rpx]"></view> <view class="w-full h-[2rpx] bg-[#E5E6EB] !my-[8rpx]"></view>
<view class="test-22r text-[#86909C]">商家将根据约定扣钱或不结算</view> <view class="test-22r text-[#86909C]">商家将根据约定扣钱或不结算</view>
</view> </view>
<reply-message-modal :data="data" :intervention="true" @success="emits('success')"> <reply-message-modal :data="data" :logId="item.id" :intervention="true" @success="emits('success')">
<view <view
class="py-[15rpx] !flex justify-center flex-col items-center test-28r text-[#165DFF] bg-[#E8F3FF] px-[26rpx]"> class="py-[15rpx] !flex justify-center flex-col items-center test-28r text-[#165DFF] bg-[#E8F3FF] px-[26rpx]">
发起申诉 发起申诉
@@ -97,7 +98,7 @@ const confirmTask = async () => {
<image :src="YY_ICON" class="!size-[26rpx]"></image> <image :src="YY_ICON" class="!size-[26rpx]"></image>
提示点击下方按钮快速回复 提示点击下方按钮快速回复
</view> </view>
<reply-message-modal :data="data" :intervention="true" @success="emits('success')"> <reply-message-modal :data="data" :logId="item.id" :intervention="true" @success="emits('success')">
<view <view
class="py-[15rpx] !flex justify-center flex-col items-center test-28r text-[#165DFF] bg-[#E8F3FF] px-[26rpx]"> class="py-[15rpx] !flex justify-center flex-col items-center test-28r text-[#165DFF] bg-[#E8F3FF] px-[26rpx]">
发起申诉 发起申诉
@@ -119,7 +120,7 @@ const confirmTask = async () => {
<view class="w-full h-[2rpx] bg-[#E5E6EB] !my-[8rpx]"></view> <view class="w-full h-[2rpx] bg-[#E5E6EB] !my-[8rpx]"></view>
<view class="test-22r text-[#86909C]">将在12时00分00秒后自动同意</view> <view class="test-22r text-[#86909C]">将在12时00分00秒后自动同意</view>
</view> </view>
<reply-message-modal :data="data" :intervention="true" @success="emits('success')"> <reply-message-modal :data="data" :logId="item.id" :intervention="true" @success="emits('success')">
<view <view
class="py-[15rpx] !flex justify-center flex-col items-center test-28r text-[#165DFF] bg-[#E8F3FF] px-[26rpx]"> class="py-[15rpx] !flex justify-center flex-col items-center test-28r text-[#165DFF] bg-[#E8F3FF] px-[26rpx]">
发起申诉 发起申诉

View File

@@ -4,6 +4,7 @@ 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"; import XSquareCarouselImage from "../../../components/XSquareCarouselImage.vue";
import HF_ICON from "../../../static/icons/icon-wrapper.png"; import HF_ICON from "../../../static/icons/icon-wrapper.png";
import {copy} from "../../../utils/uils.js";
const {data, home} = defineProps({ const {data, home} = defineProps({
data: { data: {
@@ -31,7 +32,8 @@ const {data, home} = defineProps({
<text class="ellipsis-1 flex-grow"> <text class="ellipsis-1 flex-grow">
{{ data.case_url }} {{ data.case_url }}
</text> </text>
<view class="nowrap flex-shrink !py-[7rpx] !px-[32rpx] rounded-full bg-[#E8F3FF]" <view @click="copy(data.case_url)"
class="nowrap flex-shrink !py-[7rpx] !px-[32rpx] rounded-full bg-[#E8F3FF]"
style="font-size: 24rpx"> style="font-size: 24rpx">
复制 复制
</view> </view>
@@ -44,7 +46,7 @@ const {data, home} = defineProps({
<x-square-carousel-image <x-square-carousel-image
v-if="data.case_images_arr.length > 0" v-if="data.case_images_arr.length > 0"
:list="data.case_images_arr" :list="data.case_images_arr"
:show-s-y="home"> :show-s-y="true">
</x-square-carousel-image> </x-square-carousel-image>
</view> </view>
</view> </view>

View File

@@ -7,7 +7,7 @@ import {showToast, uploadFile} from "../../../utils/uils.js";
import Api from "../../../api/index.js"; import Api from "../../../api/index.js";
const emits = defineEmits(['success']); const emits = defineEmits(['success']);
const {data, backId, intervention, pattern} = defineProps({ const {data, backId, intervention, pattern, logId} = defineProps({
data: { data: {
type: Object, type: Object,
default: {}, default: {},
@@ -16,6 +16,10 @@ const {data, backId, intervention, pattern} = defineProps({
type: Number, type: Number,
default: null, default: null,
}, },
logId: {
type: Number,
default: null,
},
pattern: { pattern: {
type: Number, type: Number,
default: null, default: null,
@@ -33,16 +37,16 @@ const form = reactive({
}); });
const upload = async () => { const upload = async () => {
const [res] = await uploadFile({ const res = await uploadFile({
count: 9, count: 9,
}); });
const {data} = res; const data = res.map(v => v.data);
form.images.push(data); form.images.push(...data);
} }
const success = async () => { const success = async () => {
const api = intervention ? Api.system.intervention : Api.system.addExchangeLog const api = intervention ? Api.system.intervention : Api.system.addExchangeLog;
const {msg} = await api({...form, backfill_id: backId, pattern: pattern}); const {msg} = await api({...form, backfill_id: backId, pattern: pattern, log_id: logId});
showToast(msg); showToast(msg);
form.images.length = 0; form.images.length = 0;
form.content = null; form.content = null;

View File

@@ -9,12 +9,13 @@ import XImage from "../../components/XImage.vue";
import Api from "../../api/index.js"; import Api from "../../api/index.js";
import dayjs from "dayjs"; import dayjs from "dayjs";
import XPrompt from "../../components/XPrompt.vue"; import XPrompt from "../../components/XPrompt.vue";
import {numberToCharacter} from "../../utils/uils.js"; import {copy, 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"; import XConfirmModal from "../../components/XConfirmModal.vue";
import LeftMenu from "../../components/LeftMenu.vue"; import LeftMenu from "../../components/LeftMenu.vue";
import {v4} from "uuid"; import {v4} from "uuid";
import {debounce} from "lodash";
// #ifdef APP-PLUS // #ifdef APP-PLUS
// #endif // #endif
@@ -144,13 +145,18 @@ const setScroll = (value) => {
scrollState.top = value; scrollState.top = value;
}); });
} }
const hiddenMenu = debounce(() => {
showMenu.value = false;
}, 1200);
const scroll = ({detail: {scrollTop}}) => { const scroll = ({detail: {scrollTop}}) => {
const systemInfo = uni.getSystemInfoSync(); const systemInfo = uni.getSystemInfoSync();
const screenHeight = systemInfo.screenHeight; const screenHeight = systemInfo.screenHeight;
console.log('屏幕高度:', screenHeight);
if (scrollTop > screenHeight) { if (scrollTop > screenHeight) {
showMenu.value = true; showMenu.value = true;
hiddenMenu();
} else { } else {
showMenu.value = false; showMenu.value = false;
} }
@@ -169,7 +175,7 @@ const scroll = ({detail: {scrollTop}}) => {
<template> <template>
<!--任务详情--> <!--任务详情-->
<XNav :delta="delta"></XNav> <XNav :delta="delta"></XNav>
<x-notice-bar></x-notice-bar> <x-notice-bar v-if="details.banner" :text="details.banner"></x-notice-bar>
<left-menu v-show="showMenu" :tabs="menuTabs" @top="topTop" @setScroll="setScroll"></left-menu> <left-menu v-show="showMenu" :tabs="menuTabs" @top="topTop" @setScroll="setScroll"></left-menu>
<scroll-view <scroll-view
@@ -196,7 +202,7 @@ const scroll = ({detail: {scrollTop}}) => {
</view> </view>
<view v-else class="goods-bh"> <view v-else class="goods-bh">
任务编号{{ !home && details.is_use === 0 ? details.code : details.children.uid }} 任务编号{{ !home && details.is_use === 0 ? details.code : details.children.uid }}
<x-link>复制</x-link> <x-link @click="copy(details.children.uid)">复制</x-link>
</view> </view>
</view> </view>
</view> </view>

View File

@@ -20,7 +20,7 @@ export {BASEURL};
const request = axios.create({ const request = axios.create({
baseURL: BASEURL, baseURL: BASEURL,
timeout: '6000', timeout: '60000',
adapter: UniAdapter, adapter: UniAdapter,
}); });

View File

@@ -134,9 +134,9 @@ export const numberToCharacter = (number) => {
return ['一', '二', '三', '四', '五'][number]; return ['一', '二', '三', '四', '五'][number];
} }
export const toWXMiniApp = (id) => { export const toWXMiniApp = (id, task_children_id) => {
const {token} = useUserStore(); const {token} = useUserStore();
window.open(`weixin://dl/business/?appid=${import.meta.env.VITE_APP_ID}&path=pages/index/index&env_version=${import.meta.env.VITE_APP_VERSION}&query=${encodeURIComponent(`id=${id}&token=${token}`)}`); window.open(`weixin://dl/business/?appid=${import.meta.env.VITE_APP_ID}&path=pages/index/index&env_version=${import.meta.env.VITE_APP_VERSION}&query=${encodeURIComponent(`id=${id}&task_children_id=${task_children_id}&token=${token}`)}`);
} }
export const uploadFile = ({count}) => { export const uploadFile = ({count}) => {