update
This commit is contained in:
@@ -456,6 +456,34 @@ const merchant = {
|
||||
data: data
|
||||
});
|
||||
},
|
||||
getTaskBlock: async (data) => {
|
||||
return request({
|
||||
url: '/index/task/getTaskBlock',
|
||||
method: Method.POST,
|
||||
data: data
|
||||
});
|
||||
},
|
||||
cancelTaskBlock: async (data) => {
|
||||
return request({
|
||||
url: '/index/task/cancelTaskBlock',
|
||||
method: Method.POST,
|
||||
data: data
|
||||
});
|
||||
},
|
||||
getTaskEffect: async (data) => {
|
||||
return request({
|
||||
url: '/index/task/getTaskEffect',
|
||||
method: Method.POST,
|
||||
data: data
|
||||
});
|
||||
},
|
||||
cancelTaskEffect: async (data) => {
|
||||
return request({
|
||||
url: '/index/task/cancelTaskEffect',
|
||||
method: Method.POST,
|
||||
data: data
|
||||
});
|
||||
},
|
||||
}
|
||||
|
||||
export default merchant;
|
||||
|
||||
@@ -7,6 +7,10 @@ const input = ref('');
|
||||
|
||||
const changeInput = (e) => {
|
||||
if (e.match(/#(\S+?)(?=\s)/g)) {
|
||||
if (modelValue.value === void 0) {
|
||||
console.log('进来了')
|
||||
}
|
||||
console.log(modelValue.value)
|
||||
modelValue.value.push(...e.match(/#(\S+?)(?=\s)/g).map(tag => tag.slice(1)));
|
||||
input.value = null;
|
||||
nextTick(() => {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<script setup>
|
||||
import {onMounted, reactive} from "vue";
|
||||
|
||||
const emits = defineEmits(['change']);
|
||||
const {api, fieldName, apiPo, init, defaultValue} = defineProps({
|
||||
api: {
|
||||
type: Function,
|
||||
@@ -50,6 +51,7 @@ onMounted(() => {
|
||||
:options="list"
|
||||
:field-names="fieldName"
|
||||
:default-value="defaultValue"
|
||||
@change="emits('change')"
|
||||
@popup-visible-change="popupChange"
|
||||
placeholder="请选择">
|
||||
</a-select>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import XImage from "../XImage/Index.vue";
|
||||
import Api from "../../api/index.js";
|
||||
|
||||
const {size, api, multiple} = defineProps({
|
||||
const {size, api, multiple, placeholder} = defineProps({
|
||||
size: {
|
||||
type: String,
|
||||
default: '60px'
|
||||
@@ -14,6 +14,10 @@ const {size, api, multiple} = defineProps({
|
||||
multiple: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
placeholder: {
|
||||
type: String,
|
||||
default: '上传'
|
||||
}
|
||||
});
|
||||
const files = defineModel('files');
|
||||
@@ -40,7 +44,7 @@ const beforeUpload = (file) => {
|
||||
<template #upload-button>
|
||||
<div class="upload-button test">
|
||||
<IconPlus/>
|
||||
上传
|
||||
{{ placeholder }}
|
||||
</div>
|
||||
</template>
|
||||
</a-upload>
|
||||
|
||||
@@ -5,6 +5,7 @@ import {Message} from "@arco-design/web-vue";
|
||||
|
||||
const visible = ref(false);
|
||||
const detail = reactive({});
|
||||
const emits = defineEmits(['success']);
|
||||
const {id, money} = defineProps({
|
||||
id: {
|
||||
type: Number,
|
||||
@@ -39,6 +40,7 @@ const success = async () => {
|
||||
money: money,
|
||||
});
|
||||
Message.success(msg);
|
||||
emits('success');
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -2,43 +2,44 @@
|
||||
import useTableQuery from "../../../../hooks/useTableQuery.js";
|
||||
import Api from "../../../../api/index.js";
|
||||
import {reactive} from "vue";
|
||||
import {Message} from "@arco-design/web-vue";
|
||||
|
||||
const columns = [
|
||||
{
|
||||
title: 'ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'id',
|
||||
},
|
||||
{
|
||||
title: '渠道',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'platform',
|
||||
},
|
||||
{
|
||||
title: '已拉黑达人',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'uid',
|
||||
},
|
||||
{
|
||||
title: '拉黑原因',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'remark',
|
||||
},
|
||||
{
|
||||
title: '拉黑效果',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'type_text',
|
||||
},
|
||||
{
|
||||
title: '拉黑开始日期',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'createtime',
|
||||
},
|
||||
{
|
||||
title: '拉黑结束日期',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'endtime',
|
||||
},
|
||||
{
|
||||
title: '关联任务ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'task_id',
|
||||
},
|
||||
{
|
||||
title: '关联子任务ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'task_children_id',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
@@ -57,14 +58,20 @@ const po = reactive({
|
||||
wd: null,
|
||||
});
|
||||
|
||||
const {loading, pagination, initFetchData} = useTableQuery({
|
||||
const {loading, pagination, initFetchData, fetchData} = useTableQuery({
|
||||
parameter: po,
|
||||
api: Api.system.getData,
|
||||
api: Api.merchant.getTaskBlock,
|
||||
callback: (data) => {
|
||||
Object.assign(vo, data);
|
||||
console.log(vo);
|
||||
}
|
||||
});
|
||||
|
||||
const cancelTaskBlock = async (id) => {
|
||||
const {msg} = await Api.merchant.cancelTaskBlock({id: id});
|
||||
Message.success(msg);
|
||||
await fetchData();
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -86,8 +93,11 @@ const {loading, pagination, initFetchData} = useTableQuery({
|
||||
:pagination="pagination"
|
||||
:loading="loading"
|
||||
:columns="columns">
|
||||
<template v-slot:action>
|
||||
<template v-slot:action="{record}">
|
||||
<a-popconfirm content="确定取消吗?" @ok="cancelTaskBlock(record.id)" v-if="record.is_cancel !== 1">
|
||||
<a-link :hoverable="false" :disabled="false">取消拉黑</a-link>
|
||||
</a-popconfirm>
|
||||
<a-link :hoverable="false" :disabled="true" v-else>已取消</a-link>
|
||||
</template>
|
||||
</a-table>
|
||||
</div>
|
||||
|
||||
@@ -3,23 +3,24 @@ import OriginTag from "../../../../components/OriginTag/index.vue";
|
||||
import useTableQuery from "../../../../hooks/useTableQuery.js";
|
||||
import Api from "../../../../api/index.js";
|
||||
import {reactive} from "vue";
|
||||
import {Message} from "@arco-design/web-vue";
|
||||
|
||||
const columns = [
|
||||
{
|
||||
title: 'ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'id',
|
||||
},
|
||||
{
|
||||
title: '达人',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'uid',
|
||||
},
|
||||
{
|
||||
title: '处罚理由',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'intro',
|
||||
},
|
||||
{
|
||||
title: '处罚结果',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'remark',
|
||||
},
|
||||
{
|
||||
title: '进度',
|
||||
@@ -28,15 +29,15 @@ const columns = [
|
||||
},
|
||||
{
|
||||
title: '提交日期',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'createtime',
|
||||
},
|
||||
{
|
||||
title: '关联任务ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'task_id',
|
||||
},
|
||||
{
|
||||
title: '关联子任务ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'task_children_id',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
@@ -55,14 +56,20 @@ const po = reactive({
|
||||
wd: null,
|
||||
});
|
||||
|
||||
const {loading, pagination, initFetchData} = useTableQuery({
|
||||
const {loading, pagination, initFetchData, fetchData} = useTableQuery({
|
||||
parameter: po,
|
||||
api: Api.system.getData,
|
||||
api: Api.merchant.getTaskEffect,
|
||||
callback: (data) => {
|
||||
Object.assign(vo, data);
|
||||
console.log(vo);
|
||||
}
|
||||
});
|
||||
|
||||
const cancelTaskEffect = async (id) => {
|
||||
const {msg} = await Api.merchant.cancelTaskEffect({id});
|
||||
Message.success(msg);
|
||||
await fetchData();
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -84,15 +91,18 @@ const {loading, pagination, initFetchData} = useTableQuery({
|
||||
:pagination="pagination"
|
||||
:loading="loading"
|
||||
:columns="columns">
|
||||
<template v-slot:status>
|
||||
<OriginTag color="rgb(var(--success-6))">已生效</OriginTag>
|
||||
<OriginTag color="rgb(var(--orange-6))">审核中</OriginTag>
|
||||
<OriginTag color="rgb(var(--arcoblue-6))">达人申诉成功</OriginTag>
|
||||
<OriginTag color="rgb(var(--red-6))">已拒绝</OriginTag>
|
||||
<template v-slot:status="{record}">
|
||||
<OriginTag v-if="record.status === 0" color="rgb(var(--orange-6))">审核中</OriginTag>
|
||||
<OriginTag v-if="record.status === 1" color="rgb(var(--success-6))">已生效</OriginTag>
|
||||
<OriginTag v-if="record.status === 3" color="rgb(var(--arcoblue-6))">达人申诉成功</OriginTag>
|
||||
<OriginTag v-if="record.status === 2" color="rgb(var(--red-6))">已拒绝</OriginTag>
|
||||
</template>
|
||||
|
||||
<template v-slot:action>
|
||||
<template v-slot:action="{record}">
|
||||
<a-popconfirm content="确定撤销吗?" @ok="cancelTaskEffect(record.id)" v-if="record.status !== 2">
|
||||
<a-link :hoverable="false" :disabled="false">撤销</a-link>
|
||||
</a-popconfirm>
|
||||
<a-link :hoverable="false" :disabled="false">/</a-link>
|
||||
</template>
|
||||
</a-table>
|
||||
</div>
|
||||
|
||||
@@ -13,6 +13,7 @@ const {businessInfo} = defineProps({
|
||||
default: {}
|
||||
}
|
||||
});
|
||||
const emits = defineEmits(['success']);
|
||||
const money = ref(null);
|
||||
const radioValue = ref(null);
|
||||
const withdrawalList = reactive([]);
|
||||
@@ -92,7 +93,8 @@ onMounted(() => {
|
||||
|
||||
<a-form-item class="mt-[40px]">
|
||||
<!-- <a-button type="primary" @click="openWithdrawalStatus">立即提现</a-button>-->
|
||||
<LookWithdrawalInformationModal :id="withdrawalList[radioValue]?.id" :money="money">
|
||||
<LookWithdrawalInformationModal :id="withdrawalList[radioValue]?.id" :money="money"
|
||||
@success="emits('success')">
|
||||
<a-button type="primary" :disabled="!withdrawalList[radioValue]?.id || !money">立即提现</a-button>
|
||||
</LookWithdrawalInformationModal>
|
||||
</a-form-item>
|
||||
|
||||
@@ -112,7 +112,7 @@ onMounted(() => {
|
||||
<Recharge></Recharge>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="Reflect" title="我的提现">
|
||||
<Reflect :businessInfo="businessInfo"></Reflect>
|
||||
<Reflect :businessInfo="businessInfo" @success="getData"></Reflect>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</a-card>
|
||||
|
||||
@@ -6,6 +6,7 @@ import {Message} from "@arco-design/web-vue";
|
||||
import Comment from "../../../../../components/Comment/index.vue";
|
||||
import AddMaterial from "../../../components/AddMaterial.vue";
|
||||
import AddComment from "../../../components/AddComment.vue";
|
||||
import Talk from "../../../../../components/Talk/index.vue";
|
||||
|
||||
const emits = defineEmits(['success']);
|
||||
const {task} = defineProps({
|
||||
@@ -93,10 +94,7 @@ const update = async () => {
|
||||
</a-textarea>
|
||||
</a-form-item>
|
||||
<a-form-item label="话题">
|
||||
<div id="tag-list"
|
||||
class="w-full bg-[var(--color-neutral-2)] p-[4px]">
|
||||
<a-input v-model:model-value="task.tags"></a-input>
|
||||
</div>
|
||||
<Talk v-model:model-value="item.tags"></Talk>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="素材">
|
||||
|
||||
@@ -62,6 +62,7 @@ const success = async () => {
|
||||
<a-form-item label="投放渠道" field="platform_id">
|
||||
<XSelect
|
||||
:init="true"
|
||||
@change="form.material_id=null"
|
||||
v-model:model-value="form.platform_id"
|
||||
:api="Api.merchant.getPlatformList">
|
||||
</XSelect>
|
||||
@@ -81,11 +82,12 @@ const success = async () => {
|
||||
<a-input v-model:model-value="form.goods_intro" placeholder="请输入产品功效,如:驱蚊"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="包含子任务数量" field="children_num">
|
||||
<a-input v-model:model-value="form.children_num"
|
||||
placeholder="请输入代发的账号数量,最多一个任务可包含50个子任务"></a-input>
|
||||
<a-input-number :precision="0" :min="0" :max="50" v-model:model-value="form.children_num"
|
||||
placeholder="请输入代发的账号数量,最多一个任务可包含50个子任务"></a-input-number>
|
||||
</a-form-item>
|
||||
<a-form-item label="单个子任务价格" field="children_price">
|
||||
<a-input v-model:model-value="form.children_price" placeholder="请输入单个子任务价格"></a-input>
|
||||
<a-input-number :precision="2" :min="0" v-model:model-value="form.children_price"
|
||||
placeholder="请输入单个子任务价格"></a-input-number>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="案例链接" field="case_url">
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
import Api from "../../../../../api/index.js";
|
||||
import XSelect from "../../../../../components/XSelect/index.vue";
|
||||
import FormTitle from "../../../../../components/FormTitle/index.vue";
|
||||
import UploadOne from "../../../../../components/upload/UploadOne.vue";
|
||||
import {useTemplateRef} from "vue";
|
||||
import {Message} from "@arco-design/web-vue";
|
||||
import UploadAvatar from "../../../../../components/upload/UploadAvatar.vue";
|
||||
|
||||
const emits = defineEmits(['success', 'prev']);
|
||||
const form = defineModel('form');
|
||||
@@ -78,8 +78,11 @@ const success = async () => {
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="" field="special_images">
|
||||
{{ form.special_images }}
|
||||
<upload-one :file="form.special_images" size="100px" :api="Api.system.uploadFile2"></upload-one>
|
||||
<UploadAvatar
|
||||
size="100px"
|
||||
v-model:files="form.special_images"
|
||||
:api="Api.system.uploadFile2">
|
||||
</UploadAvatar>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="选择限制 IP" field="choose_area">
|
||||
|
||||
@@ -68,7 +68,9 @@ const success = async () => {
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="评论是否需要置顶"
|
||||
<a-form-item
|
||||
v-if="form.is_comment===1"
|
||||
label="评论是否需要置顶"
|
||||
extra="若您的评论内容有营销属性,不建议置顶。各个平台置顶评论都由人工审核,有概率置顶不成功且影响流量">
|
||||
<a-radio-group v-model:model-value="form.is_top">
|
||||
<a-radio :value="0">否</a-radio>
|
||||
|
||||
@@ -79,7 +79,6 @@ const success = async () => {
|
||||
<a-form-item field="back_id" label="结算条件" class="whitespace-nowrap">
|
||||
达人回传
|
||||
<XSelect
|
||||
disabled
|
||||
class="mx-[6px]"
|
||||
:init="true"
|
||||
:api-po="{id: form.platform_id}"
|
||||
|
||||
@@ -119,7 +119,23 @@ onMounted(() => {
|
||||
<a-form-item label="结算后" extra="*如有其他要求,可联系管理员添加">
|
||||
<div class="max-w-[618px]">
|
||||
<a-checkbox-group>
|
||||
<a-checkbox v-for="v in settltment_after_list" :value="v.id">{{ v.name }}</a-checkbox>
|
||||
<a-checkbox v-for="v in settltment_after_list" :value="v.id">
|
||||
{{ v.name }}
|
||||
<a-popover position="rt">
|
||||
<icon-question-circle/>
|
||||
<template v-slot:content>
|
||||
<div class="text-[14px] text-[#1D2129]">什么是达人信用分?</div>
|
||||
<div class="w-[312px] text-[#86909C] text-[12px]">
|
||||
信用分是规范达人行为,确保其维护商家利益的强制手段。
|
||||
信用分过低,将影响达人参加任务、提现、邀请好友等多项核心功能的使用
|
||||
</div>
|
||||
<div class="text-[#165DFF] text-[12px] cursor-pointer">
|
||||
查看达人信用分管理详情
|
||||
<icon-double-right/>
|
||||
</div>
|
||||
</template>
|
||||
</a-popover>
|
||||
</a-checkbox>
|
||||
</a-checkbox-group>
|
||||
</div>
|
||||
</a-form-item>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script setup>
|
||||
import Comment from "../../../../components/Comment/index.vue";
|
||||
import {reactive, ref} from "vue";
|
||||
import {computed, reactive, ref} from "vue";
|
||||
import useTableQuery from "../../../../hooks/useTableQuery.js";
|
||||
import Api from "../../../../api/index.js";
|
||||
import {useRoute} from "vue-router";
|
||||
@@ -9,12 +9,27 @@ import AddMaterial from "../../components/AddMaterial.vue";
|
||||
import AddComment from "../../components/AddComment.vue";
|
||||
import XImageSmallList from "../../../../components/XImage/XImageSmallList.vue";
|
||||
import ViewMaterial from "../../components/ViewMaterial.vue";
|
||||
import XMention from "../../../../components/XMention/index.vue";
|
||||
import Talk from "../../../../components/Talk/index.vue";
|
||||
import {Message} from "@arco-design/web-vue";
|
||||
|
||||
const route = useRoute();
|
||||
const AddMaterialRef = ref();
|
||||
const columns = reactive([
|
||||
const po = reactive({
|
||||
id: route.query.id,
|
||||
});
|
||||
const vo = reactive({
|
||||
limit: {
|
||||
title_limit: 0,
|
||||
desc_limit: 0,
|
||||
tags_limit: 0,
|
||||
},
|
||||
page: '',
|
||||
rows: [],
|
||||
total: 0,
|
||||
pageSize: 9,
|
||||
});
|
||||
const columns = computed(() => {
|
||||
return [
|
||||
{
|
||||
title: '子任务编号',
|
||||
dataIndex: 'uid',
|
||||
@@ -23,16 +38,19 @@ const columns = reactive([
|
||||
title: '标题',
|
||||
dataIndex: 'title',
|
||||
slotName: 'title',
|
||||
hidden: vo.limit.title_limit === 0,
|
||||
},
|
||||
{
|
||||
title: '正文',
|
||||
dataIndex: 'content',
|
||||
slotName: 'content',
|
||||
hidden: vo.limit.desc_limit === 0,
|
||||
},
|
||||
{
|
||||
title: '话题',
|
||||
dataIndex: 'tags',
|
||||
slotName: 'tags',
|
||||
hidden: vo.limit.tags_limit === 0,
|
||||
},
|
||||
{
|
||||
title: '素材',
|
||||
@@ -44,15 +62,7 @@ const columns = reactive([
|
||||
dataIndex: 'pl',
|
||||
slotName: 'pl',
|
||||
},
|
||||
]);
|
||||
const po = reactive({
|
||||
id: route.query.id,
|
||||
});
|
||||
const vo = reactive({
|
||||
page: '',
|
||||
rows: [],
|
||||
total: 0,
|
||||
pageSize: 9,
|
||||
].filter(v => !v.hidden)
|
||||
});
|
||||
|
||||
const {loading, pagination, fetchData} = useTableQuery({
|
||||
@@ -60,6 +70,7 @@ const {loading, pagination, fetchData} = useTableQuery({
|
||||
api: Api.merchant.getTaskChildrenList,
|
||||
callback: (data) => {
|
||||
Object.assign(vo, data);
|
||||
console.log('lime', vo)
|
||||
}
|
||||
});
|
||||
|
||||
@@ -118,11 +129,9 @@ const success = async () => {
|
||||
</template>
|
||||
<template v-slot:tags="{record}">
|
||||
<div class="flex flex-col gap-[12px]">
|
||||
<x-mention
|
||||
placeholder="请输入话题"
|
||||
@success="(e) => v.tags = e"
|
||||
v-for="v in record.childrenMaterial">
|
||||
</x-mention>
|
||||
<div class="flex gap-[12px]" v-for="v in record.childrenMaterial">
|
||||
<Talk v-model:model-value="v.tags"></Talk>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template v-slot:material="{record, rowIndex}">
|
||||
|
||||
@@ -29,7 +29,7 @@ const form = reactive({
|
||||
is_identical: 1,
|
||||
duration: null,
|
||||
special_text: null,
|
||||
special_images: null,
|
||||
special_images: [],
|
||||
choose_area: null,
|
||||
machine: 0,
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ export const BASEURL = import.meta.env.MODE === 'development' ? '/baseApi' : imp
|
||||
// 创建 Axios 实例
|
||||
const request = axios.create({
|
||||
baseURL: BASEURL, // 替换为你的基础 URL
|
||||
timeout: 10000, // 请求超时设置
|
||||
timeout: 20000, // 请求超时设置
|
||||
});
|
||||
|
||||
// 请求拦截器
|
||||
|
||||
Reference in New Issue
Block a user