update
This commit is contained in:
@@ -163,7 +163,7 @@ const system = {
|
|||||||
} else {
|
} else {
|
||||||
return request({
|
return request({
|
||||||
method: MethodsENUM.POST,
|
method: MethodsENUM.POST,
|
||||||
url: "/task/getAllExchangeLog",
|
url: "/task/getNewExchangeLog",
|
||||||
data: data,
|
data: data,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -439,6 +439,20 @@ const system = {
|
|||||||
data: {id}
|
data: {id}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
setAccountStatus: async (data) => {
|
||||||
|
return request({
|
||||||
|
method: MethodsENUM.POST,
|
||||||
|
url: "/user/setAccountStatus",
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getPlatformImages: async (data) => {
|
||||||
|
return request({
|
||||||
|
method: MethodsENUM.POST,
|
||||||
|
url: "/Task/getPlatformImages",
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
export default system;
|
export default system;
|
||||||
|
|||||||
@@ -77,11 +77,11 @@ const success = debounce(async () => {
|
|||||||
showToast('请选择帐号');
|
showToast('请选择帐号');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const {msg, data: {task_children_id, task_id}} = await Api.system.acceptTask({
|
const {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('任务接受成功');
|
||||||
show.value = false;
|
show.value = false;
|
||||||
await toPage(`/pages/taskDetails/index?id=${task_id}&task_children_id=${task_children_id}&delta=999`)
|
await toPage(`/pages/taskDetails/index?id=${task_id}&task_children_id=${task_children_id}&delta=999`)
|
||||||
emits('success');
|
emits('success');
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ onMounted(() => {
|
|||||||
@success="selectActionsheet"
|
@success="selectActionsheet"
|
||||||
:itemList="itemList">
|
:itemList="itemList">
|
||||||
<view
|
<view
|
||||||
@click.stop="type === 0 ? toPage(`/pages/taskDetails/index?id=${data.task_id}&task_children_id=${data.task_children_id}&tab=3`) : openOpenTypeFun()"
|
@click.stop="type === 0 ? toPage(`/pages/taskDetails/index?id=${data.task_id}&task_children_id=${data.id}&tab=3`) : openOpenTypeFun()"
|
||||||
class="!py-[30rpx] !px-[24rpx] bg-[#fff] rounded-[8rpx] !flex items-center gap-[20rpx] overflow-hidden relative !mb-[20rpx]">
|
class="!py-[30rpx] !px-[24rpx] bg-[#fff] rounded-[8rpx] !flex items-center gap-[20rpx] overflow-hidden relative !mb-[20rpx]">
|
||||||
<view class="relative">
|
<view class="relative">
|
||||||
<image class="!size-[72rpx] flex-shrink-0" mode="aspectFill" :src="messageIcon"></image>
|
<image class="!size-[72rpx] flex-shrink-0" mode="aspectFill" :src="messageIcon"></image>
|
||||||
|
|||||||
40
src/components/SelectTimeAsync.vue
Normal file
40
src/components/SelectTimeAsync.vue
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<script setup>
|
||||||
|
import {ref} from "vue";
|
||||||
|
|
||||||
|
const {type} = defineProps({
|
||||||
|
type: {
|
||||||
|
type: Number,
|
||||||
|
default: 2
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const {promise, resolve, reject} = Promise.withResolvers();
|
||||||
|
|
||||||
|
const value = ref();
|
||||||
|
const DateTimeRef = ref();
|
||||||
|
const open = () => {
|
||||||
|
DateTimeRef.value.show();
|
||||||
|
return promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
const success = ({result}) => {
|
||||||
|
value.value = result;
|
||||||
|
resolve(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
const cancel = () => {
|
||||||
|
reject("取消了选择");
|
||||||
|
}
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
open,
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<tui-datetime ref="DateTimeRef" :type="type" @confirm="success" @cancel="cancel"></tui-datetime>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -20,7 +20,7 @@ const modelValue = defineModel();
|
|||||||
|
|
||||||
const change = ({detail: {value}}) => {
|
const change = ({detail: {value}}) => {
|
||||||
modelValue.value = list.filter(v => !v.hidden)[value].id;
|
modelValue.value = list.filter(v => !v.hidden)[value].id;
|
||||||
emits('change', modelValue.value);
|
emits('change', list.filter(v => !v.hidden)[value].id);
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|||||||
@@ -10,12 +10,13 @@ import PLUSICON from "../../static/icons/plus.png";
|
|||||||
import XNav from "../../components/XNav.vue";
|
import XNav from "../../components/XNav.vue";
|
||||||
import XNoticeBar from "../../components/XNoticeBar.vue";
|
import XNoticeBar from "../../components/XNoticeBar.vue";
|
||||||
import {showToast, toPage} from "../../utils/uils.js";
|
import {showToast, toPage} from "../../utils/uils.js";
|
||||||
import {reactive} from "vue";
|
import {reactive, ref} from "vue";
|
||||||
import Api from "../../api/index.js";
|
import Api from "../../api/index.js";
|
||||||
import {onShow} from "@dcloudio/uni-app";
|
import {onShow} from "@dcloudio/uni-app";
|
||||||
import {useSystemStore} from "../../pinia/SystemStore/index.js";
|
import {useSystemStore} from "../../pinia/SystemStore/index.js";
|
||||||
import XPrompt from "../../components/XPrompt.vue";
|
import XPrompt from "../../components/XPrompt.vue";
|
||||||
import XSelect from "../../components/XSelect.vue";
|
import XSelect from "../../components/XSelect.vue";
|
||||||
|
import SelectTimeAsync from "../../components/SelectTimeAsync.vue";
|
||||||
|
|
||||||
const SystemStore = useSystemStore();
|
const SystemStore = useSystemStore();
|
||||||
const BASE = [
|
const BASE = [
|
||||||
@@ -45,6 +46,7 @@ const BASE = [
|
|||||||
icon: TTICON,
|
icon: TTICON,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
const SelectTimeAsyncRef = ref();
|
||||||
const list = reactive([]);
|
const list = reactive([]);
|
||||||
const dataList = reactive([]);
|
const dataList = reactive([]);
|
||||||
|
|
||||||
@@ -87,11 +89,20 @@ const deleteItem = async (id) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const changeStatus = async (value, item) => {
|
const changeStatus = async (value, item) => {
|
||||||
const {msg} = await Api.system.editAccount({
|
let abnormaltime = null;
|
||||||
...item,
|
if (value === 2) {
|
||||||
status: value,
|
abnormaltime = await SelectTimeAsyncRef.value.open();
|
||||||
});
|
}
|
||||||
showToast(msg);
|
try {
|
||||||
|
const {msg} = await Api.system.setAccountStatus({
|
||||||
|
...item,
|
||||||
|
status: value,
|
||||||
|
abnormaltime: abnormaltime,
|
||||||
|
});
|
||||||
|
showToast(msg);
|
||||||
|
} finally {
|
||||||
|
await getData();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -99,6 +110,7 @@ const changeStatus = async (value, item) => {
|
|||||||
<!--账号管理-->
|
<!--账号管理-->
|
||||||
<x-nav></x-nav>
|
<x-nav></x-nav>
|
||||||
<x-notice-bar status="success" :text="['提示:左滑查看更多,点击可查看该平台所有的账号']"></x-notice-bar>
|
<x-notice-bar status="success" :text="['提示:左滑查看更多,点击可查看该平台所有的账号']"></x-notice-bar>
|
||||||
|
<SelectTimeAsync ref="SelectTimeAsyncRef"></SelectTimeAsync>
|
||||||
|
|
||||||
<view class="p-[36rpx] bg-[#fff] !flex justify-around items-center">
|
<view class="p-[36rpx] bg-[#fff] !flex justify-around items-center">
|
||||||
<template v-for="(item, index) in list" :key="item.id">
|
<template v-for="(item, index) in list" :key="item.id">
|
||||||
@@ -133,7 +145,8 @@ const changeStatus = async (value, item) => {
|
|||||||
</view>
|
</view>
|
||||||
<view class="px-[12rpx] py-[7rpx] test-24r success !flex items-center gap-0.5" v-if="v.status === 1">
|
<view class="px-[12rpx] py-[7rpx] test-24r success !flex items-center gap-0.5" v-if="v.status === 1">
|
||||||
{{ v.status_text }}
|
{{ v.status_text }}
|
||||||
<x-select v-model:model-value="v.status" :api="Api.system.getAccountStatus"
|
<x-select v-if="[1,2,3].includes(v.status)" v-model:model-value="v.status"
|
||||||
|
:api="Api.system.getAccountStatus"
|
||||||
@change="changeStatus($event, v)">
|
@change="changeStatus($event, v)">
|
||||||
<tui-icon size="14" name="arrowdown"></tui-icon>
|
<tui-icon size="14" name="arrowdown"></tui-icon>
|
||||||
</x-select>
|
</x-select>
|
||||||
@@ -141,6 +154,11 @@ const changeStatus = async (value, item) => {
|
|||||||
<view class="px-[12rpx] py-[7rpx] test-24r warn !flex items-center gap-0.5"
|
<view class="px-[12rpx] py-[7rpx] test-24r warn !flex items-center gap-0.5"
|
||||||
v-else-if="v.status === 0 || v.status === 3">
|
v-else-if="v.status === 0 || v.status === 3">
|
||||||
{{ v.status_text }}
|
{{ v.status_text }}
|
||||||
|
<x-select v-if="[1,2,3].includes(v.status)" v-model:model-value="v.status"
|
||||||
|
:api="Api.system.getAccountStatus"
|
||||||
|
@change="changeStatus($event, v)">
|
||||||
|
<tui-icon size="14" name="arrowdown"></tui-icon>
|
||||||
|
</x-select>
|
||||||
</view>
|
</view>
|
||||||
<view class="px-[12rpx] py-[7rpx] test-24r error !flex items-center gap-0.5"
|
<view class="px-[12rpx] py-[7rpx] test-24r error !flex items-center gap-0.5"
|
||||||
v-else-if="v.status === -2">
|
v-else-if="v.status === -2">
|
||||||
@@ -150,7 +168,8 @@ const changeStatus = async (value, item) => {
|
|||||||
</template>
|
</template>
|
||||||
</x-prompt>
|
</x-prompt>
|
||||||
{{ v.status_text }}
|
{{ v.status_text }}
|
||||||
<x-select v-model:model-value="v.status" :api="Api.system.getAccountStatus"
|
<x-select v-if="[1,2,3].includes(v.status)" v-model:model-value="v.status"
|
||||||
|
:api="Api.system.getAccountStatus"
|
||||||
@change="changeStatus($event, v)">
|
@change="changeStatus($event, v)">
|
||||||
<tui-icon size="14" name="arrowdown"></tui-icon>
|
<tui-icon size="14" name="arrowdown"></tui-icon>
|
||||||
</x-select>
|
</x-select>
|
||||||
@@ -162,7 +181,8 @@ const changeStatus = async (value, item) => {
|
|||||||
</template>
|
</template>
|
||||||
</x-prompt>
|
</x-prompt>
|
||||||
{{ v.status_text }}
|
{{ v.status_text }}
|
||||||
<x-select v-model:model-value="v.status" :api="Api.system.getAccountStatus"
|
<x-select v-if="[1,2,3].includes(v.status)" v-model:model-value="v.status"
|
||||||
|
:api="Api.system.getAccountStatus"
|
||||||
@change="changeStatus($event, v)">
|
@change="changeStatus($event, v)">
|
||||||
<tui-icon size="14" name="arrowdown"></tui-icon>
|
<tui-icon size="14" name="arrowdown"></tui-icon>
|
||||||
</x-select>
|
</x-select>
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import {backPage, showToast} from "../../utils/uils.js";
|
|||||||
import {onLoad} from "@dcloudio/uni-app";
|
import {onLoad} from "@dcloudio/uni-app";
|
||||||
import XDateTime from "../../components/XDateTime.vue";
|
import XDateTime from "../../components/XDateTime.vue";
|
||||||
import {useSystemStore} from "../../pinia/SystemStore/index.js";
|
import {useSystemStore} from "../../pinia/SystemStore/index.js";
|
||||||
|
import XImage from "../../components/XImage.vue";
|
||||||
|
import XLink from "../../components/XLink.vue";
|
||||||
|
|
||||||
const SystemStore = useSystemStore();
|
const SystemStore = useSystemStore();
|
||||||
|
|
||||||
@@ -60,6 +62,14 @@ const getSelect = async () => {
|
|||||||
data: data,
|
data: data,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const ZYObj = reactive({
|
||||||
|
images1: [],
|
||||||
|
images2: [],
|
||||||
|
});
|
||||||
|
const changeP = async () => {
|
||||||
|
const {data} = await Api.system.getPlatformImages({id: form.pid});
|
||||||
|
Object.assign(ZYObj, data);
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -69,7 +79,7 @@ const getSelect = async () => {
|
|||||||
<view class="min-h-[calc(100vh-100rpx)] bg-[#fff] px-[30rpx] py-[25rpx]">
|
<view class="min-h-[calc(100vh-100rpx)] bg-[#fff] px-[30rpx] py-[25rpx]">
|
||||||
<x-form>
|
<x-form>
|
||||||
<x-form-item label="宣发平台">
|
<x-form-item label="宣发平台">
|
||||||
<x-select v-model:model-value="form.pid" :api="getSelect"></x-select>
|
<x-select v-model:model-value="form.pid" :api="getSelect" @change="changeP"></x-select>
|
||||||
</x-form-item>
|
</x-form-item>
|
||||||
<x-form-item label="账号">
|
<x-form-item label="账号">
|
||||||
<x-input v-model:model-value="form.account" height="80rpx" placeholder="请输入帐号"></x-input>
|
<x-input v-model:model-value="form.account" height="80rpx" placeholder="请输入帐号"></x-input>
|
||||||
@@ -81,9 +91,27 @@ const getSelect = async () => {
|
|||||||
<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="主页截图">
|
||||||
|
<template v-slot:label>
|
||||||
|
<view class="!flex justify-between">
|
||||||
|
<view>主页截图</view>
|
||||||
|
<x-image v-if="form.pid && ZYObj.images1.length > 0" :src="ZYObj.images1[0]"
|
||||||
|
:list="ZYObj.images1">
|
||||||
|
<x-link>查看指引</x-link>
|
||||||
|
</x-image>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
<x-upload v-model:files="form.homepage" single></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="主页二维码">
|
||||||
|
<template v-slot:label>
|
||||||
|
<view class="!flex justify-between">
|
||||||
|
<view>主页二维码</view>
|
||||||
|
<x-image v-if="form.pid && ZYObj.images2.length > 0" :src="ZYObj.images2[0]"
|
||||||
|
:list="ZYObj.images2">
|
||||||
|
<x-link>查看指引</x-link>
|
||||||
|
</x-image>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
<x-upload v-model:files="form.qrcode" single></x-upload>
|
<x-upload v-model:files="form.qrcode" single></x-upload>
|
||||||
</x-form-item>
|
</x-form-item>
|
||||||
</x-form>
|
</x-form>
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ const saveM = () => {
|
|||||||
<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>
|
||||||
|
|
||||||
<template v-if="detail.id">
|
<template v-if="detail.id">
|
||||||
<view class="block" v-if="detail.material_type?.title_limit > 0">
|
<view class="block" v-if="detail.material_type?.title_limit > 0 && detail.children.material[current].title">
|
||||||
<view class="title">标题</view>
|
<view class="title">标题</view>
|
||||||
<view class="info">
|
<view class="info">
|
||||||
{{ detail.children.material[current].title }}
|
{{ detail.children.material[current].title }}
|
||||||
@@ -53,7 +53,8 @@ const saveM = () => {
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="block" v-if="detail.material_type?.tags_limit > 0">
|
<view class="block"
|
||||||
|
v-if="detail.material_type?.tags_limit > 0 && detail.children?.material[current].tags_arr.length > 0">
|
||||||
<view class="title">
|
<view class="title">
|
||||||
话题
|
话题
|
||||||
<view class="!ml-auto">
|
<view class="!ml-auto">
|
||||||
@@ -70,7 +71,7 @@ const saveM = () => {
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="block" v-if="detail.material_type?.desc_limit > 0">
|
<view class="block" v-if="detail.material_type?.desc_limit > 0 && detail.children?.material[current].content">
|
||||||
<view class="title">正文</view>
|
<view class="title">正文</view>
|
||||||
<view class="info">
|
<view class="info">
|
||||||
{{ detail.children?.material[current].content }}
|
{{ detail.children?.material[current].content }}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ const UserStore = useUserStore();
|
|||||||
|
|
||||||
const form = reactive({
|
const form = reactive({
|
||||||
mobile: '17502997128',
|
mobile: '17502997128',
|
||||||
password: '123456',
|
password: '654321',
|
||||||
});
|
});
|
||||||
const rules = {
|
const rules = {
|
||||||
mobile: {
|
mobile: {
|
||||||
|
|||||||
@@ -73,7 +73,6 @@ const changeTab = ({index}) => {
|
|||||||
<scroll-view
|
<scroll-view
|
||||||
@refresherpulling="initFetchData()"
|
@refresherpulling="initFetchData()"
|
||||||
@scrolltolower="() => {
|
@scrolltolower="() => {
|
||||||
console.log('进来了???')
|
|
||||||
pagination.page++;
|
pagination.page++;
|
||||||
}"
|
}"
|
||||||
class="h-[calc(100vh-500rpx)]"
|
class="h-[calc(100vh-500rpx)]"
|
||||||
|
|||||||
@@ -327,13 +327,13 @@ const scroll = ({detail: {scrollTop}}) => {
|
|||||||
</x-prompt>
|
</x-prompt>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="block items-center">
|
<view class="block items-center" v-if="details.duration">
|
||||||
<view class="block-title">每次间隔时长:</view>
|
<view class="block-title">每次间隔时长:</view>
|
||||||
<view class="block-info">
|
<view class="block-info">
|
||||||
{{ details.duration }}分钟
|
{{ details.duration }}分钟
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="block">
|
<view class="block" v-if="details.special_images_arr.length">
|
||||||
<view class="block-title">特殊要求:</view>
|
<view class="block-title">特殊要求:</view>
|
||||||
<view class="block-info gap-[20rpx]">
|
<view class="block-info gap-[20rpx]">
|
||||||
<view>{{ details.special_text }}</view>
|
<view>{{ details.special_text }}</view>
|
||||||
@@ -345,7 +345,7 @@ const scroll = ({detail: {scrollTop}}) => {
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="block items-center">
|
<view class="block items-center" v-if="details.choose_area_arr.length">
|
||||||
<view class="block-title">ip限制:</view>
|
<view class="block-title">ip限制:</view>
|
||||||
<view class="block-info">
|
<view class="block-info">
|
||||||
{{ details.choose_area_arr.join(',') }}
|
{{ details.choose_area_arr.join(',') }}
|
||||||
|
|||||||
Reference in New Issue
Block a user